calcular media aritmética con while

Iniciado por indict, 8 Noviembre 2012, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

indict

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.

#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

indict

Lo he echo bien :D,

gracias de todos modos.

Caster

Me ha dado tiempo a ver tu fallo, y era que la linea
Código (cpp) [Seleccionar]
cin>>n;
la tenias fuera del bucle while.

Saludos

Ferno

Cita de: Caster en  8 Noviembre 2012, 18:52 PM
Me ha dado tiempo a ver tu fallo, y era que la linea
Código (cpp) [Seleccionar]
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.

Caster

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

Ferno

Cita de: 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

Ups! Perdón entonces :P

leosansan

Con system creo que necesitas cstdlib:
Código (cpp) [Seleccionar]
#include<iostream>
#include <cstdlib>
using namespace std;
    int main(){
    double suma=0,n;
    int contador=0;
    cout << "Introduzca numero: " ;
    cin>>n;
    while(n>0){
        suma+=n;
        contador+=1;
        cout << "Introduzca numero: " ;
        cin>>n;
    }
    cout<<suma/contador<<endl;
    system("pause");
    return 0;
}

Saludos!.