Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 8 Noviembre 2012, 18:42 pm



Título: calcular media aritmética con while
Publicado por: indict en 8 Noviembre 2012, 18:42 pm
Hola, quiero calcular la media aritmética con el bucle while y usando un centinela.

No me calcula bien el promedio, si pudierais decirme que fallo hay.

Código:
#include<iostream>
using namespace std;
int main(){
double suma,n;
int contador=0;
cin>>n;
while(n!=-1){
            suma=suma+n;
            contador=contador+1;
            cin>>n;}
            cout<<suma/contador<<endl;
           

system("PAUSE");
return 0;
}

Un saludo


Título: Re: calcular media aritmética con while
Publicado por: indict en 8 Noviembre 2012, 18:50 pm
Lo he echo bien :D,

gracias de todos modos.


Título: Re: calcular media aritmética con while
Publicado por: Caster en 8 Noviembre 2012, 18:52 pm
Me ha dado tiempo a ver tu fallo, y era que la linea
Código
  1. cin>>n;
la tenias fuera del bucle while.

Saludos


Título: Re: calcular media aritmética con while
Publicado por: Ferno en 8 Noviembre 2012, 18:57 pm
Me ha dado tiempo a ver tu fallo, y era que la linea
Código
  1. cin>>n;
la tenias fuera del bucle while.

Saludos

No. Tiene otro dentro del bucle.
El único problema que le veo es que la variable "suma" no está inicializada a 0 (no creo que haya problema, pero debería estarlo :P).

Por lo demás, aparentemente está bien.


Título: Re: calcular media aritmética con while
Publicado por: Caster en 8 Noviembre 2012, 18:58 pm
Su mensaje esta editado, la primera vez que habia posteado, el que esta dentro del bucle, lo tenia fuera, y por eso digo que me dio tiempo a verlo.

Saludos


Título: Re: calcular media aritmética con while
Publicado por: Ferno en 8 Noviembre 2012, 20:27 pm
Su mensaje esta editado, la primera vez que habia posteado, el que esta dentro del bucle, lo tenia fuera, y por eso digo que me dio tiempo a verlo.

Saludos

Ups! Perdón entonces :P


Título: Re: calcular media aritmética con while
Publicado por: leosansan en 8 Noviembre 2012, 22:49 pm
Con system creo que necesitas cstdlib:
Código
  1. #include<iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.    int main(){
  5.    double suma=0,n;
  6.    int contador=0;
  7.    cout << "Introduzca numero: " ;
  8.    cin>>n;
  9.    while(n>0){
  10.        suma+=n;
  11.        contador+=1;
  12.        cout << "Introduzca numero: " ;
  13.        cin>>n;
  14.    }
  15.    cout<<suma/contador<<endl;
  16.    system("pause");
  17.    return 0;
  18. }
Saludos!.