Calcolo media vettore

di il
2 risposte

Calcolo media vettore

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; }

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte