ciao ragazzi, sto facendo il seguente esercizio ma ho riscontrato un problema nel sottoprogramma "sdoppia" anche se non riesco a capire in cosa consiste. potreste darmi una mano?
(l'esercizio da fare è spiegato nel main)
sottoprogrammi:
dichiarazioni:codice:#include <cstdlib> #include <iostream> #include <stdio.h> #include "dichiarazioni.h" using namespace std; void inserisci_vet(int vet[],int riemp) { cout<<"inserisci i tuoi valori\n"; for(int i=0;i<riemp;i++) { cout<<"val "<<i<<": "; cin>>vet[i]; } } void stampa_vet(int vet[],int riemp) { cout<<"i valori contenuti nell'array sono:"<<endl; for(int i=0;i<riemp;i++) { cout<<"v["<<i<<"]: "; cout<<vet[i]<<endl; } } void sdoppia(int vet[],int riemp,int v1[],int& r1, int& r2,int v2[]) { r1=-1; r2=-1; for(int i=0;i<riemp;i++) { if(vet[i]%2==0) //pari { r1++; v1[r1]=vet[i]; } else //dispari { r2++; v2[r2]=vet[i]; } } cout<<r2<<","<<r1; } void stampa_prima_vetminimo(int v1[],int v2[],int r1,int r2) { if(r1<r2) { stampa_vet(v1,r1); stampa_vet(v2,r2); } else stampa_vet(v2,r2); stampa_vet(v1,r1); }maincodice:#ifndef DICHIARAZIONI_H #define DICHIARAZIONI_H #define nmax 100 #endif /* DICHIARAZIONI_H */ void inserisci_vet(int vet[],int riemp); void stampa_vet(int vet[],int riemp); void sdoppia(int vet[],int riemp,int v1[],int& r1, int& r2,int v2[]); void stampa_prima_vetminimo(int v1[],int v2[],int r1,int r2);
grazie in anticipo!codice:/* Esercizio 2 Siano assegnati in ingresso il riempimento e gli elementi di un array di interi. Si scriva un programma che, letto l’array in accordo a quanto specificato, copi in altri due vettori array i valori pari ed i valori dispari presenti nell’array. Si forniscano in uscita gli array ottenuti, stampando per primo il vettore con numero minore di elementi. Esempio: INPUT 8 8 13 15 23 50 15 52 5 OUTPUT Pari 8 50 52 Dispari 13 15 23 15 5 */ /* * File: main.cpp * Author: emil * * Created on 19 ottobre 2016, 13.50 */ #include <cstdlib> #include <iostream> #include <stdio.h> #include "dichiarazioni.h" using namespace std; int main() { int r1,r2; int riemp; int vet[nmax],v1[nmax],v2[nmax]; cout<<"quanti valori vuoi immettere?\n"; cin>>riemp; inserisci_vet(vet,riemp); stampa_vet(vet,riemp); sdoppia(vet,riemp,v1,r1,r2,v2); stampa_prima_vetminimo(v1,v2,r1,r2); system ("pause"); return 0; }![]()

Rispondi quotando