fabrollo
23-11-2013, 09:29
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":
#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!! :fagiano:
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":
#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!! :fagiano: