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:
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);
}
dichiarazioni:
codice:
#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);
main
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;
}
grazie in anticipo!