Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - media in una funzione
Forum - C/C++ - media in una funzione

Avatar
gighen991 (Normal User)
Newbie


Messaggi: 20
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 17:16
Martedì, 04/08/2009
ciao a tutti ho un problema in questo esercizio... non mi visualizza la media dei dieci numeri che prendo in input... il codice è questo...

#include <iostream>
#include <cmath>

using namespace std;

double qualitipoint(double n);

int main(){
    int x, numero, sum;
    double media;
    
for(x=1; x<=10; x++){
   cout<<"inserisci il numero: ";
   cin>>numero;
   sum += numero;
}
   cout<<"la media e: " <<qualitipoint(numero);

system("pause");
return 0;
}

double qualitipoint(double n){

int numero, media, sum=0;

   sum += numero;
   media = sum / 10;
  
return media;
}

qualcuno saprebbe dirmi il xk??

grazie a tutti :k:


gighen991
PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 17:25
Martedì, 04/08/2009
Ci sono gravi errori logici, ecco la versione corretta:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.     int x, numero, sum;
  7.     double media;
  8.         numero=0;
  9.         sum=0;
  10.    
  11. for(x=1; x<=10; x++){
  12.    cout<<"inserisci il numero: ";
  13.    cin>>numero;
  14.    sum += numero;
  15. }
  16.    media = (double)sum / 10.0f;
  17.    cout<<"la media e: " << media;
  18.  
  19. system("pause");
  20. return 0;
  21. }



La funzione qualitypoint non ha ragione di esistere ed è errata, le variabili num e sum non sono accessibili da un'altra funzione eccettoo quella in cui sono state dichiarate e l'argomento n non viene utilizzato.

Ultima modifica effettuata da manvb.net il 04/08/2009 alle 17:32


"E' facile distruggere, la vera sfida è creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Avatar
gighen991 (Normal User)
Newbie


Messaggi: 20
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 18:07
Martedì, 04/08/2009
nella tua versione però hai eliminato la funzione.. nell esercizio che ho è richiesto  una funzione qualitipoint che prenda in input la media di uno studente e che restituisca con un comando switch 4-3-2-1 a seconda del voto ottenuto..


gighen991
PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 19:01
Martedì, 04/08/2009
prova così... poi non ho capito cosa devi fare con lo switch
Codice sorgente - presumibilmente C#

  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. double qualitipoint(int n);
  7.  
  8. int main(){
  9.     int x, numero, sum=0;
  10.     double media;
  11.    
  12. for(x=1; x<=10; x++){
  13.    cout<<"inserisci il numero: ";
  14.    cin>>numero;
  15.    sum += numero;
  16. }
  17.    cout<<"la media e: " <<qualitipoint(sum);
  18.  
  19. system("pause");
  20. return 0;
  21. }
  22.  
  23. double qualitipoint(int n){
  24.  double  media;
  25.   media = n / 10;
  26.  
  27. return media;
  28. }



:)
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:18
Martedì, 04/08/2009
Solo per precisione ... il nome della funzione dovrebbe essere

qualitypoint

Per il resto mi sembra che l'ultima versione funzioni ...




- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
gighen991 (Normal User)
Newbie


Messaggi: 20
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 21:01
Martedì, 04/08/2009
Testo quotato

Postato originariamente da giuseppe93:

prova così... poi non ho capito cosa devi fare con lo switch
Codice sorgente - presumibilmente C#

  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. double qualitipoint(int n);
  7.  
  8. int main(){
  9.     int x, numero, sum=0;
  10.     double media;
  11.    
  12. for(x=1; x<=10; x++){
  13.    cout<<"inserisci il numero: ";
  14.    cin>>numero;
  15.    sum += numero;
  16. }
  17.    cout<<"la media e: " <<qualitipoint(sum);
  18.  
  19. system("pause");
  20. return 0;
  21. }
  22.  
  23. double qualitipoint(int n){
  24.  double  media;
  25.   media = n / 10;
  26.  
  27. return media;
  28. }




sembra ke facendo cosi funzioni... per lo switch ci penso io... grazie.. caso mai ci fosse qualche problema te lo comunicherò...;)


gighen991
PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 21:22
Martedì, 04/08/2009
ok!:k:


:)
PM Quote
Avatar
gighen991 (Normal User)
Newbie


Messaggi: 20
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 9:07
Mercoledì, 05/08/2009
Testo quotato

Postato originariamente da giuseppe93:

ok!:k:



ok sistemato anche lo switch! grazie dell aiuto! mi tengo scritto ciò ke hai fatto per un futuro problema.. ;)


gighen991
PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 22:14
Mercoledì, 05/08/2009
No problem! Felice di averti aiutato!


:)
PM Quote