Salve a tutti,
sto preparando l'esame di informatica ma ho grosse difficoltà.
ho il seguente problema da risolvere ma non riesco a completarlo. In particolare ho il problema nel calcolare la media del vettore 3.
Siano dati in ingresso, da tastiera, i riempimenti n1 ed n2 ed i valori di due vettori V1 e V2 di numeri reali. Si scriva un programma che copi in un nuovo vettore V3 i valori contenuti in V2 che risultano minori della media dei valori presenti in V1.
Si stampino quindi il vettore V3 cosi' ottenuto e le medie dei valori presenti in V1 ed in V3. Si preveda un apposito output nel caso V3 sia vuoto.
Si strutturi il programma in opportuni sottoprogrammi.
Esempio:
Ingresso
n1 = 4 n2 = 6
V1 = 7.2 15.5 19.3 12.8
V2 = 2.4 9.5 18.6 6.2 15.3 4.9
Uscita
V3 = 2.4 9.5 6.2 4.9
media_in_V1 = 13.7
media_in_V3 = 9.48333
Il programma in C++ da me svolto è il seguente:
#include <iostream>
using namespace std;
#include <stdlib.h>
//prototipi delle funzioni
void input ( int &n1,int &n2 , float vett1[],float vett2[]);
double vetmedia (int n1,int n2,float vett1[],float vett2[]);
//Si scriva un programma che copi in un nuovo vettore V3 i valori contenuti in V2
//che risultano minori della media dei valori presenti in V1
void vettore3 (int n1,int n2,float vett1[],float vett2[],float vett3[]);
void output (int n1,int n2, float vett1[],float vett2[]);
int main() {
int n1;
int n2;
float vett1[100];
float vett2[100];
float vett3[100];
//chiamate delle funzioni
input(n1,n2,vett1,vett2);
cout<<"i vettori sono: \n";
output(n1,n2,vett1,vett2);
vettore3 (n1,n2,vett1,vett2,vett3);
double media=vetmedia(n1,n2,vett1,vett2);
cout<<"la media del vettore V1 e'="<<media<<endl;
cout<<"la media del vettore V3 e': "<<media<<endl;
cout<<"\n\n";
system ("PAUSE");
return 0;
}
void input(int &n1,int &n2 ,float vett1[],float vett2[] ){
int i;
cout<<"Assegna un valore intero n1 al numero di elementi del vettore:";
cin>>n1;
cout<<"\n";
cout<<"Assegna "<<n1<<" elementi del vettore\n";
cout<<"V1=";
for (i=0;i<n1;i++) cin>>vett1;
cout<<"Assegna un valore intero n2 al numero di elementi del vettore:";
cin>>n2;
cout<<"\n";
cout<<"Assegna "<<n2<<" elementi del vettore\n";
cout<<"V2=";
for (i=0;i<n2;i++) cin>>vett2;
}
double vetmedia(int n1,int n2,float vett1[],float vett2[]) {
double media=0;
for (int i=0;i<n1;i++)
media+=vett1;
media=media/n1;
return media;
}
void vettore3 (int n1,int n2,float vett1[],float vett2[],float vett3[]) {
double media=vetmedia(n1,n2,vett1,vett2);
cout<<"Il V3 contenente i valori in V2 che risultano <della media dei valori in V1 e': V3=[";
for (int i=0;i<n2;i++)
if (vett2<media)
cout<<" "<<vett2;
cout<<" ]";
cout<<"\n";
}
void output (int n1,int n2,float vett1[],float vett2[])
{
cout<<"V1=[";
for (int i=0;i<n1;i++)
cout<<" "<<vett1;
cout<<" ]";
cout<<"\n";
cout<<"V2=[";
for (int i=0;i<n2;i++)
cout<<" "<<vett2;
cout<<" ]";
cout<<"\n";
}
Riuscite a risolvere il quesito? insomma come poter ugualgiare quel nuovo vettore 2 in vettore 3 e calcolare la media? Ve ne sarei grato....