Non mi stampa il valore corretto relativo al prodotto degli elmenti dispari del vettore...
Sapreste dirmi l'(gli)errore(i)?
Grazie anticipatamente...
Speriamo che sia la volta buona per capire le funzioni!?!
codice:
/*Prova 2
Prova 2*
Sia assegnato in ingresso, da tastiera, un vettore di reali V.
Si scriva un programma che calcoli la somma som degli elementi di posto pari ed il prodotto prod degli elementi
di posto dispari del vettore V. Si stampino quindi il vettore V ed i valori di som e prod.
Il programma deve essere articolato in funzioni (ad es.: input, output, somprod).
Esempio
INPUT: V = 2.1 4.2 1.3 3.2 7.1 6.3
OUTPUT: V = 2.1 4.2 1.3 3.2 7.1 6.3 som = 10.5 prod = 84.7
*/
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<iomanip>
//Prototipi delle funzioni
void input(int &n,float v[]);
float somprod(float v[],int n,float som,float prod);
void output(float v[],int n,float som,float prod);
int main()
{
int n;
float v[100];
float som;
float prod;
//Chiamate della funzione
input(n,v);
som = somprod(v,n,som,prod);
prod = somprod(v,n,som,prod);
output(v,n,som,prod);
cout<<"\n\n";
system("PAUSE");
return 0;
}
void input(int &n,float v[])
{
int i;
cout<<"Assegna un valore intero ad n valori del vettore\n";
cin>>n;
cout<<"Assegna "<<n<<"valori reali al vettore\n";
for(i=0;i<n;i++)
{
cin>>v[i];
}
}
float somprod(float v[],int n,float som,float prod)
{
int i;
som=0;
for(i=0;i<n;i=i+2)
{
som=som + v[i];
}
prod=1;
for(i=1;i<n;i=i+2)
{
prod=prod *v[i];
}
return som;
return prod;
}
void output(float v[],int n,float som,float prod)
{
int i;
cout<<"I valori del vettore sono\n";
for(i=0;i<n;i++)
{
cout<<v[i]<<"\n";
}
cout<<"La somma dei valori di posto pari del vettore e\' ";
cout<<setprecision(3)<<som<<"\n";
cout<<"Il prodotto dei valori di posto dispari del vettore e\' ";
cout<<setprecision(3)<<prod<<"\n";
}