Salve, per la risoluzione di questo esercizio in primis avevo dichiarato con un "int" la variabile valore, ma non compilava. Dopo cambiandola con un float ho risolto. Mi chiedo perchè è cosi essenziale qsta differenza?
codice:#include <iostream> Siano assegnati in ingresso, da tastiera, un vettore di interi V1 ed il suo riempimento n1. Si scriva un programma che calcoli la media M degli elementi del vettore V1 e copi in un vettore V2 tutti gli elementi di V1 il cui valore è minore di M. Si stampino quindi il vettore V1, la media M ed il vettore V2. #include <stdlib.h> using namespace std; void input (int v1[], int &n); void media (int v1[], float &valore, int n); void copia (int v1[], int v2[], float valore, int risultato, int n); void output(int v1[], int v2[], float valore, int risultato, int n); int main (){ int n; int v1[100],v2[100]; float valore=0; int risultato=0; input(v1,n); media(v1,valore,n); copia(v1,v2,valore,risultato,n); output(v1,v2,valore,risultato,n); system("pause"); return 0; } void input (int v1[], int &n){ cout<<"Inserie la grandezza di V1:\n"; cin>>n; cout<<"Riempi V1\n"; for(int i=0; i<n; i++){ cin>>v1[i]; }} void media (int v1[], float &valore, int n){ for(int i=0; i<n; i++){ valore= valore+v1[i]; } valore= valore/n; } void copia (int v1[], int v2[], float valore, int risultato, int n){//copio valori<M in v2 bool esiste=false; for(int i=0; i<n; i++){ if(v1[i]<valore){ v2[risultato]=v1[i]; risultato++; esiste=true; }}} void output(int v1[], int v2[], float valore, int risultato, int n){ cout << "il vettore di ingresso è:\n"; for(int i =0; i < n; i++){ cout << v1[i]<<"\n"; } cout<<"Valore Media:\n"; cout<<valore<<"\n"; bool esiste; if(esiste){ cout<<"Vettore V2:\n"; for(int j=0; j<valore; j++){ cout<<v2[j]<<"\n"; }} else{ bool esiste; cout<<"Nessun valore minore della Media.\n"; }}

Rispondi quotando