C/Visual C - Fallo en el promedio

 
Vista:

Fallo en el promedio

Publicado por Marco (1 intervención) el 28/03/2015 18:38:57
Debo hacer un programa en C++ que calcule el promedio de una cantidad de alumnos definido por el usuario. También las calificaciones son ingresadas por el usuario. Según yo el programa debería correr sin problemas pero el promedio no es correcto, siempre sale un número muy grande que es imposible. Me ayudarían si me dijeran si no estoy viendo algún error.
#include <iostream>
#include <conio.h>

using namespace std;

int main()

{

int nota[100], m, suma, menor, mayor;
float prom, ap, rep;

cout<<"CALIFICACIONES DEL SEMESTRE"<<endl;
cout<<"Cuantos estudiantes fueron evaluados? "<<endl;
cin>>m;

for (int i=0; i<m; i++)
{
cout<<"Ingrese la calificacion del estudiante numero "<<i+1<<endl;
cin>> nota[i];

mayor=nota[0];
menor=nota[0];
suma+=nota[i];
prom=suma/m;
}

for (int i=0; i<m; i++)
{
if (nota[i]<menor)
{
menor=nota[i];
}
if (nota[i]>mayor)
{
mayor=nota[i];
}
}
cout<<"El promedio del grupo es: "<<a<<endl;
cout<<"La calificacion mas alta es: "<<mayor<<endl;
cout<<"La calificacion mas baja es: "<<menor<<endl;
getch();
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Fallo en el promedio

Publicado por Robert (8 intervenciones) el 28/03/2015 23:09:07
Hola,
Lo único que tienes mal es un error básico.

En esta línea:
1
int nota[100], m, suma, menor, mayor;

Deber poner esto:
1
int nota[100], m, suma = 0, menor, mayor;

o sea, suma = 0.

Por qué?, recuerda que las variables sumadoras debes inicializarlas en 0, porque sino lo haces, estarás sumando la primera nota que ingreses con el valor que tenga esa variable en memoria. Todas las variables tienen un valor distinto en memoria, y si usas: +=, -=, /=, *=, estarás haciendolo con el valor en memoria de la variable, por eso, debes inicializarla.

Sumadoras: inicializarlas en 0

Otra cosa. En esta línea:
1
cout<<"El promedio del grupo es: "<<a<<endl;

no estas mostrando nada, ya que la variable "a" no existen, cambiala por "prom".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar