Separare i numeri pari e dispari dal vettore A e poszionare i dispari nel vettore B e i pari nel vettore C

di Anonimizzato30601 il
6 risposte
Salve a tutti,
PREMESSA
Non sono questo fenomeno nella programmazione, ma è da un'ora che ho mal di testa perché non riesco ad andare avanti

PROBLEMA
Il professore ci ha affidato un esercizio: "Dopo aver acquisito da tastiera un vettore A di 10 numeri interi, salvare in un vettore B tutti i numeri dispari e in un vettore C tutti i numeri pari; stampare, poi, il contenuto di ciascun vettore."

CODICE DA ME SCRITTO

#include <iostream>
using namespace std;

int main()
{  int i=0, vettore_A[10], vettore_B[10], vettore_C[10];

   cout<<"Inserisci 10 numeri nel vettore A"<<endl;
   
   for(i=0; i<10; i++) {
   cin>>vettore_A[i];
   
   if(vettore_A[i]%2==0){
   vettore_C[i]=vettore_A[i];
   }
   
   else {
   vettore_B[i]=vettore_A[i];
   }
   }
  
   cout<<"Pari: "<<vettore_C[i]<<endl;
   cout<<"Dispari: "<<vettore_B[i]<<endl;
 
   return 0;
}
Purtroppo testandolo non so perché non funziona come dovrebbe. Lo so qualcuno starà per ridere, ma si ho difficoltà. Ne sarei lieto, capire dove fosse il problema.

Lo so ho visto che c'era un post uguale, ma non capivo nulla.
Grazie a tutti quelli che mi aiuteranno ?.

6 Risposte

  • Devi avere tre indici diversi i j k (che iniziano da zero) per i tre array, poi devi fare qualcosa del genere nel primo ciclo
    
    	vettore_C[k++]=vettore_A[i];
    
    Finito il primo ciclo, j e k indicheranno la lunghezza degli altri due array e potrai fare altri due cicli per stamparli
  • Weierstrass ha scritto:


    Devi avere tre indici diversi i j k (che iniziano da zero) per i tre array, poi devi fare qualcosa del genere nel primo ciclo
    
    	vettore_C[k++]=vettore_A[i];
    
    Finito il primo ciclo, j e k indicheranno la lunghezza degli altri due array e potrai fare altri due cicli per stamparli
    Grazie mille, non appena posso riprovo senz'altro. Grazie ancora per la disponibilità.
  • NON pretendere di fare TUTTO in un colpo solo.
    Ci sono TRE cose da fare:
    1) leggere A
    2) creare B
    3) creare C.

    Ilcodice DEVE avere la stessa struttura: DEVE essere suddiviso in TRE parti.

    In questo modo, all'inizio, puoi inziare con un vettore GIA' popolato (sezione 1)
    Altrimenti sai che barba OGNI VOLTA inserire 10 valori A MANO!
  • Grazie mille a tutti, ha funzionato alla perfezione finalmente. Lascio il codice nel caso qualche futuro ragazzo possa essere aiutato da solo.
    
    #include <iostream>
    using namespace std;
    
    int vettore_A[10], vettore_B[10], vettore_C[10];
    
    //------------------------------- main ----------------------------------------
    int main()
    {  int i=0, k=0, j=0;
    
       cout<<"Inserisci 10 numeri nel vettore A"<<endl;
       for(i=0; i<10; i++) {
       cin>>vettore_A[i];
       
       if(vettore_A[i]%2==0){
       vettore_C[k++]=vettore_A[i];
       }
       
       else {
       vettore_B[j++]=vettore_A[i];
       }
       }
       
       for(k=0; k<10; k++){
       cout<<"Pari: "<<vettore_C[k]<<endl;
       }
       
       for(j=0; j<10; j++){
       cout<<"Dispari: "<<vettore_B[j]<<endl;
       }
    
       
       return 0;
    }
    
  • La parte finale così
    
       cout<<"Pari: ";
       for(i=0; i<k; i++)
          cout<<vettore_C[i]<<" ";
       cout<<endl;
       
       cout<<"Dispari: ";
       for(i=0; i<j; i++)
          cout<<vettore_B[i]<<" ";
       cout<<endl;
    
  • Weierstrass ha scritto:


    La parte finale così
    
       cout<<"Pari: ";
       for(i=0; i<k; i++)
          cout<<vettore_C[i]<<" ";
       cout<<endl;
       
       cout<<"Dispari: ";
       for(i=0; i<j; i++)
          cout<<vettore_B[i]<<" ";
       cout<<endl;
    
    Eccellente, grazie ancora
Devi accedere o registrarti per scrivere nel forum
6 risposte