Buonasera a tutti, ho bisogno di un aiuto per un esercizio con i vettori. L'esercizio è banale, ho un vettore di dimensione n (con n inserito da tastiera) e devo inserire poi i numeri pari in vettore e i dispari in un altro vettore. L'esercizio in linea di massima funziona ma, stampa dei numeri strani oltre i valori richiesti.
#include <cstdlib>
#include <iostream>
#define MAX 20
using namespace std;
/*
*
*/
void carica(int vet[], int n);
void stampa(int vet[], int n);
int npari (int vet[], int n, int vetpari[]);
void stampapari(int vetpari[], int n);
int ndisp(int vet[], int n, int vetdisp[]);
void stampadisp(int vetdisp[], int n);
int main(int argc, char** argv) {
int n, vet[MAX], vetpari[MAX], vetdisp[MAX];
cout<<"Dimensione del vettore: ";
cin>>n;
while(n<1 || n>MAX){
cout<<"Dimensione non valida. Reinserisci la dimensione: ";
cin>>n;
}
carica(vet, n);
stampa(vet, n);
npari(vet, n, vetpari);
stampapari(vetpari, n);
ndisp(vet, n, vetdisp);
stampadisp(vetdisp, n);
return 0;
}
void carica(int vet[], int n){
for(int x=0; x<n; x++){
cout<<"Inserisci l'elemento dell'array alla "<<x<<" posizione: ";
cin>>vet[x];
}
}
void stampa(int vet[], int n){
cout<<"Array={";
for(int i=0; i<n; i++){
cout<<vet[i]<<"; ";
}
cout<<"\b\b}"<<endl;;
}
int npari(int vet[], int n, int vetpari[]){
int pari=0;
for(int i=0; i<n; i++){
if(vet[i]%2==0){
vetpari[pari]=vet[i];
pari++;
}
}
}
void stampapari(int vetpari[], int n){
cout<<"Array Pari={";
for(int i=0; i<n; i++){
cout<<vetpari[i]<<"; ";
}
cout<<"\b\b}"<<endl;
}
int ndisp(int vet[], int n, int vetdisp[]){
int disp=0;
for(int i=0; i<n; i++){
if(vet[i]%2!=0){
vetdisp[disp]=vet[i];
disp++;
}
}
}
void stampadisp(int vetdisp[], int n){
cout<<"Array Dispari={";
for(int i=0; i<n; i++){
cout<<vetdisp[i]<<"; ";
}
cout<<"\b\b}"<<endl;
}
Esempio di stampa:
Dimensione del vettore: 4
Inserisci l'elemento dell'array alla 0 posizione: 1
Inserisci l'elemento dell'array alla 1 posizione: 2
Inserisci l'elemento dell'array alla 2 posizione: 3
Inserisci l'elemento dell'array alla 3 posizione: 4
Array={1; 2; 3; 4}
Array Pari={2; 4; -2146333957; 1}
Array Dispari={1; 3; -2144442240; 1}