Salve, ho un problemino con un esercizio di informatica di c++.
Mi sto preparando ad un esame e quindi mi sto esercitando molto.
Il problema è che sono bloccato su questo esercizio da molto tempo e ci ho passato innumerevoli ore per cercare di farlo funzionare. Comunque vi inizio a dare il testo:
Assegnati i vettori di interi VETT1 di cardinalità 16 e riempimento N e VETT2 di cardinalità 23 e di riempimento M ottenere:
- Il vettore PARI costituito dagli elementi di VETT1 e VETT2 di valore pari;
- Il vettore DISP costituito dagli elementi di VETT1 e VETT2 di valore dispari;
- Il massimo di PARI;
- Il minimo di DISP;
- Il valore medio di tali massimo e minimo;
Esempio:
N=4
VETT1= 1 2 3 4
M=7
VETT2= 5 6 7 8 9 1 2
PARI= 2 4 6 8 2
DISP= 1 3 5 7 9 1
MAX= 8
MIN= 1
MEDIA= 4.5
Ecco invece il mio esercizio con i commenti per capire cosa ho "combinato":
codice:#include <iostream> using namespace std; int main() { //****************************************************************************** // RIEMPIMENTO e CARDINALITA' VETT1 int VETT1[16]; int N= 0; cout<< "Inserisci il numero di riempimento del primo Vettore: "; cin>> N; // INIZIALIZZIAMO VETT1 for(int i=0; i<N ; ++i) { int conta; cout<< "Inserisci il valore dell'elemento "; cout<< i; cout<< ": "; cin>> conta; VETT1[i]=conta;} // RIEMPIMENTO e CARDINALITA' VETT2 int VETT2[23]; int M= 0; cout<< "Inserisci il numero di riempimento del secondo Vettore: "; cin>> M; // INIZIALIZZIAMO VETT2 for(int i=0; i<M ; ++i) { int conta; cout<< "Inserisci il valore dell'elemento "; cout<< i; cout<< ": "; cin>> conta; VETT2[i]=conta;} //****************************************************************************** //CALCOLO IL VETTORE PARI DA VETT1 int ari=0; int VETTP[ari]; for (int c=0; c<N; c++) { if (VETT1[c] % 2 == 0) { VETTP[ari] = VETT1[c]; ari = ari+1;} } ari = ari ; //CALCOLO IL VETTORE PARI DA VETT2 for (int c=0; c<M; c++) { if (VETT2[c] % 2 == 0) { VETTP[ari] = VETT2[c]; ari = ari + 1;} } //CALCOLO IL VETTORE DISPARI DA VETT1 int ispari= 0; int VETTD[ispari]; for (int c=0; c<N; c++) { if (VETT1[c] % 2 != 0) { VETTD[ispari] = VETT1[c]; ispari = ispari+1;} } ispari = ispari ; //CALCOLO IL VETTORE DISPARI DA VETT2 for (int c=0; c<M; c++) { if (VETT2[c] % 2 != 0) { VETTD[ispari] = VETT2[c]; ispari = ispari + 1;} } //****************************************************************************** // VISUALIZZA I VETTORI PARI E DISPARI for (int v=0; v < ari; v++) { cout << "I pari sono rispettivamente:" << VETTP[v] << "\n";} for (int v=0; v < ispari; v++) { cout << "I dispari sono rispettivamente:" << VETTD[v] << "\n";} // CALCOLO IL MASSIMO DEI PARI (NON FUNZIONA ANCORA) int MAX; MAX = VETTP[0]; int TOT; for (int c=0; c < ari; c++) { if (MAX < VETTP[c] ) { MAX = TOT;} } cout << "Il Maggiore e' : " << TOT; // CALCOLO IL MINIMO DEI DISPARI //CALCOLO LA MEDIA TRA IL MASSIMO DEI PARI E IL MINIMO DEI DISPARI cout<<"\n"; system("PAUSE"); return 0; }
A prima vista sembrerebbe funzionare, ma quando inserite ad esempio i valori nel VETT1 " 5 4 3 2 1 " NON FUNZIONA, (quello dispari invece si) mentre quando li inserite così "1 2 3 4 5" FUNZIONA. Mi sono scervellato al massimo, spero che qualcuno di voi mi sappia aiutare gentilmente.
GRAZIE A TUTTI PER LA COLLABORAZIONE!!