PDA

Visualizza la versione completa : [C++] Calcolatore media


AssAss1n
05-10-2010, 17:34
Ciao a tutti.
Stavo cercando di usare il while. in pratica questo programma deve fare la media dei numeri in imput che in questo caso sono 5, ho fatto cosi




#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int v=0,s=0,m;
cout<<"Dammi il il numero"<<endl;
while (v<=5)
v=v+1;
s=s+v;
m=s/10;
cout<<"La media dei numeri inseriti e' "<<m<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}


quindi volevo che per 5 volte mi chiedesse di inserire il numero ma sicuramente ho sbagliato l' impostazione del while.
Potete aiutarmi ?
Grazie 1000

Satsuki Kenbu
05-10-2010, 18:10
Se vuoi che per cinque volte il programma ti chieda di inserire il numero il cout dovrebbe stare all'interno del while.

AssAss1n
05-10-2010, 18:15
intendi dire cosi? compilandolo non viene cioè ripete all' infinito dammi il numero...



#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int v=0,s=0,m;
while (v<=5)
cout<<"Dammi il il numero"<<endl;
v=v+1;
s=s+v;
m=s/10;
cout<<"La media dei numeri inseriti e' "<<m<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}

Satsuki Kenbu
05-10-2010, 18:19
Io non conosco il C++ ma credo siano necessarie delle parentesi graffe per racchiudere le istruzioni che dovranno essere eseguite nel while, altrimenti quel ciclo conterrà una sola istruzione e cioè il cout.

Naufr4g0
05-10-2010, 18:28
E' un po' difficile che riuscirai a immettere dati da tastiera col comando COUT che serve solo per visualizzare. L'istruzione giusta è CIN. Quindi:



#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{ int v=0, s=0, m;

while (v < 5)
{
cout << "Dammi il il numero: ";
cin >> m;
v++; // aumenta v di 1
s += v; // aumenta s di v
}

m = s / 5; // divide la sommatoria per 5

cout<<"La media dei numeri inseriti e' " << m << endl;

system("PAUSE");
return EXIT_SUCCESS;
}

AssAss1n
05-10-2010, 18:32
Non sò se le ho messe bene ma mi da lo stesso errore penso di aver sbagliato proprio ad impostare il while ma non ho capito come.



#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int v=0,s=0,m;
{
while (v<=5)
cout<<"Dammi il numero"<<endl;
v=v+1;
s=s+v;
}
m=s/10;
cout<<"La media dei numeri inseriti e' "<<m<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}

Naufr4g0
05-10-2010, 18:37
ehm.. hai letto il codice che ti ho passato?

AssAss1n
05-10-2010, 18:42
L' ho corretto e compilato però adesso qualsiasi numero metto mi dice che la media è 3 ho provato ad aggiungere cmath come libreria e mettere la variabile m in float ma non funge:



#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

int main(int argc, char *argv[])
{ int v=0, s=0;
float m;
while (v < 5)
{
cout << "Dammi il il numero: ";
cin >> m;
v++; // aumenta v di 1
s += v; // aumenta s di v
}

m = s / 5; // divide la sommatoria per 5

cout<<"La media dei numeri inseriti e' " << m << endl;

system("PAUSE");
return EXIT_SUCCESS;
}

Naufr4g0
05-10-2010, 18:45
ops avevo messo cin << m, ma m serviva per la media..
il codice corretto è:



#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int v = 0;
float s = 0.f;
float m;
float num;

while (v < 5)
{
cout << "Dammi il il numero: ";
cin >> num;
v++; // aumenta v di 1
s += num; // aumenta s di v
}

m = s / 5.f;

cout<<"La media dei numeri inseriti e' " << m << endl;


system("PAUSE");
return EXIT_SUCCESS;
}


Questo funziona sicuro! ;D

AssAss1n
05-10-2010, 18:55
Ah ok Grazie =)
E se invece il numero di "numeri" (nel caso del programma erano 5) da analizzare per fare la media li sceglie l' operatore da imput come dovrei fare?
Scusa ma mi serve per capire il meccanismo, che sicuramente mi sarà utile nei prossimi programmi.

Loading