Ciao ragazzi sto provando a fare questo programma, dove devo calcolare la media del vettore unione. Per l'unione nessun problema, il problema è il calcolo della media. Quando inserisco la funzione nella cout finale se scrito media (c, v) il programma non legge proprio la cout e va direttamente alla chiusura del programma. Invece se scrivo solo media la cout viene letta dando come risultato sempre 1. Non capisco dove sbaglio. Potreste gentilmente aiutarmi?
#include <stdlib.h>
#include <iostream>
using namespace std;
void unione (int n, int k,int v1[],int v2[],int v[]){
int c;
c=0;
for (int i=0; i<n; i++){
v[c]=v1[i];
c=c+1;}
for(int j=0; j<k; j++){
v[c]=v2[j];
c=c+1;
}
cout<<" il vettore unione contiene "<<c<<" elementi"<<endl;
for (int i=0; i<c; i++){
cout<<"l'elemento "<<i+1<<" del vettore unione e' "<<v[i]<<endl;
}}
int media (int a, int v[]){
int somma=0;
for (int i=0; i<a; i++){
somma=somma+v[i];
}
int med=0;
med=somma/a;
return med;
}
int main (){
int n, k;
cout<<"inserisci lunghezza primo array"<<endl;
cin>>n;
cout<<"inserisci lunghezza secondo array"<<endl;
cin>>k;
int v1[n];
int v2[k];
//inserimento
for (int i=0; i<n; i++){
cout<<"inserisci valore per il primo array: ";
cin>>v1[i];
if (v1[i]<0){
cout<<"Errore, numero non valido"<<endl;
return 0;
}
}
for (int j=0; j<k; j++){
cout<<"Inserisci valore per il secondo array: ";
cin>>v2[j];
if (v2[j]<0){
cout<<"Errore, numero non valido"<<endl;
break;
return 0;}}
int dimensione1;
dimensione1=sizeof(v1)/sizeof(v1[0]);
cout<<"La dimensione del primo array e': "<<dimensione1<<endl;
int dimensione2;
dimensione2=sizeof(v2)/sizeof(v2[0]);
cout<<"la dimensione del secondo array e': "<<dimensione2<<endl;
int c;
int v[c];
unione (n, k, v1, v2, v);
cout<<"la media degli elementi del vettore unione e': "<<media(c, v)<<endl;
system ("pause");
return 0; }