Somma fra tot numeri scelti dall'utente (funzioni)

di il
2 risposte

Somma fra tot numeri scelti dall'utente (funzioni)

Slave devo fare una funziona che prima chieda all'utente quanti numeri vuole inserire e in seguito l'utente deve inserire i numeri; la funzione deve calcolare la somma tra questi numeri. Io ho fato così ma come risultato mi dà il primo numero che inserisco..... Un consiglio?


/*Questo programma calcola la somma di tot numeri scelti dall'utente */

#include <iostream>
using namespace std;

float somma (float N, int V)
{
int i;
float Somma;

cout<<" Quanti valori vuoi inserire? "<<endl;
cin>> V;

for (i=0; i<V; i++)
{

cout<<" inserisci il numero "<<endl;
cin>> N;

}

Somma = N+N;

return Somma;
}

int main ()
{
float N;
int V;
int i;



cout<<" La somma e' "<<somma(N, V)<<endl;

return 0;
}

2 Risposte

  • Re: Somma fra tot numeri scelti dall'utente (funzioni)

    La funzione che hai scritto non ha molto senso ...

    Se hai una serie di valori da sommare, mi sembra ovvio che

    1) il risultato iniziale della somma deve essere 0, quindi

    float Somma= 0 ;

    2) il valore inserito da tastiera deve essere aggiunto al valore precedente della somma e all'interno del ciclo altrimenti ti perderesti i numeri man mano che si inseriscono, quindi

    Somma = Somma+N; // All'interno del ciclo for

    3) dato che la funzione fa tutto i parametri che passi non hanno senso.

    In definitiva dovrebbe essere
    
    #include <iostream>
    
    using namespace std;
    
    float somma()
    {
       int i;
       float Somma=0;
    
       cout << "Quanti valori vuoi inserire? " << endl;
       cin>> V;
    
       for (i=0; i<V; i++)
       {
          cout<<" inserisci il numero "<<endl;
          cin>> N;
          Somma = Somma+N;
       }
    
       return Somma;
    }
    
    int main ()
    {
       cout << " La somma e' " << somma() << endl;
       return 0;
    }
    
  • Re: Somma fra tot numeri scelti dall'utente (funzioni)

    Ah! Ok hai ragione! Grazie mille!
Devi accedere o registrarti per scrivere nel forum
2 risposte