PDA

Visualizza la versione completa : Esercizio


ingchimico
15-03-2011, 12:38
Siano assegnati due vettori V1 e V2 ed i loro riempimenti n1 e n2 ed in intero k.Si scriva un programma che dapprima conti quanti elementi di V1 hanno valore maggiore di k(siano nmag1) e quanti elementi di V2 hanno valore maggiore di k(siano nmag2).Quindi,se nmag1>nmag2,copi in un terzo vettore V3 gli elementi di V1 maggiori di k,altrimenti copi in V3 gli elementi di V2 maggiori di k.Si stampi il vettore V3 ed il suo riempimento.


#include <iostream>
#include <stdlib.h>

using namespace std;

const int MAX_ELEM=100;

void input_array(int V1[],int V2[],int &n1,int &n2);
void input_k(int &k);
int conta(int V1[],int V2[],int n1,int n2,int k,int nmag1,int nmag2);
void copia(int V1[],int V2[],int V3[],int n1,int n2,int nmag1,int nmag2);
void output(int V1[],int V2[],int V3[],int n1,int n2,int n3,int nmag1,int nmag2);

int main()
{
int V1[MAX_ELEM];
int V2[MAX_ELEM];
int V3[MAX_ELEM];
int n1;
int n2;
int n3;
int k;
int nmag1;
int nmag2;

input_array(V1,V2,n1,n2);
input_k(k);
conta(V1,V2,n1,n2,k,nmag1,nmag2);
copia(V1,V2,V3,n1,n2,nmag1,nmag2);
output(V1,V2,V3,n1,n2,n3,nmag1,nmag2);

system("PAUSE");
return 0;
}

void input_array(int V1[],int V2[],int &n1,int &n2){
int i;
cout<<"Inserire il riempimento del primo vettore"<<":";
cin>>n1;
cout<<endl;

for(i=0; i<n1; i++){
cout<<"Inserire V1["<<i<<"]=";
cin>>V1[i];
}

cout<<endl;

cout<<"Inserire il riempimento del secondo vettore"<<":";
cin>>n2;
cout<<endl;

for(i=0; i<n2; i++){
cout<<"Inserire V2["<<i<<"]=";
cin>>V2[i];
}

cout<<endl;
}

void input_k(int &k){
cout<<"Inserire il valore di k"<<":";
cin>>k;
cout<<endl;
}

int conta(int V1[],int V2[],int n1,int n2,int k,int nmag1,int nmag2){
int i;
int conta=0;

for(i=0; i<n1; i++){
if(V1[i]>k){
conta++;
nmag1++;}
}


for(i=0; i<n2; i++){
if(V2[i]>k){
conta++;
nmag2++;}
}

}

void copia(int V1[],int V2[],int V3[],int n1,int n2,int nmag1,int nmag2){
int i;
int n3;
n3=0;

for(i=0; i<n1; i++)
if(nmag1>nmag2){
V3[n3++]=V1[i];}
else{
V3[n3++]=V2[i];}
}

void output(int V1[],int V2[],int V3[],int n1,int n2,int n3,int nmag1,int nmag2){
int i;
cout<<"Il vettore V3 e'"<<" ";
for(i=0; i<n3; i++){
cout<<V3[i]<<" ";}

cout<<endl;
}

Dove sbaglio? Grazie mille

Celebron
15-03-2011, 12:55
usa il tag [code], indenta il codice e indica qual Ŕ il problema e cosa avviene debuggando

inoltre correggi il titolo secondo quanto scritto nel regolamento.
quindi ti risponderemo

alka
15-03-2011, 13:17
Le regole sono giÓ state indicate in questa occasione (http://forum.html.it/forum/showthread.php?s=&postid=13254643#post13254643), per cui o si rispetta il Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887) o le discussioni vengono chiuse (fino a un certo punto).

Loading