Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error

Estas en el tema de Error en el foro de Programación General en Foros del Web. hola. el siguiente programa debe mostrar el promedio de 5 numeros per me tira un resultado incorrecto. si pueden determiar el error por favor diganme ...
  #1 (permalink)  
Antiguo 04/04/2004, 21:17
 
Fecha de Ingreso: marzo-2004
Ubicación: Rep. Dominicana
Mensajes: 31
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Error

hola. el siguiente programa debe mostrar el promedio de 5 numeros per me tira un resultado incorrecto. si pueden determiar el error por favor diganme donde esta para corregirlo


# include <stdio.h>
# include <conio.h>
float promedio (float num);
void main ()
{
float num[5],prom,prm;
int cont;
for(cont=1;cont<=6;cont++)
{
printf("Digite el numero %d: ",cont);
scanf("%f",&num[cont]);
}
prom=promedio(prm);
printf("El promedio es: %f",prom/6);
}


float promedio (float num)
{
int cont,rt,prm;
prm=0;
for(cont=1;cont<=6;cont++)
{
prm=prm+num;
}
return prm;
}
  #2 (permalink)  
Antiguo 05/04/2004, 22:43
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
estas contando 6 numeros y luego haciendo prom/6. Deberia ser prom/5
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 06/04/2004, 02:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Los indices de los arrays empiezan en 0.

A promedio() le pasas una variable sin ningun valor asignado.

Por cierto, en promedio lo unico que haces es sumar ese unico numero que pasas una y otra vez. Pensaba que para el promedio o media lo que se hacia era sumar todos los valores.

Tambien promedio recibe un float, pero lo suma y almacena en un int, con la perdida de los decimales.

Veamos, mi C esta un poco oxidado, pero creo que seria algo como:

# include <stdio.h>
# include <conio.h>
float promedio (float num);
void main ()
{
float num[6],prom,prm;
int cont;
for(cont=1;cont<=6;cont++)
{
printf("Digite el numero %d: ",cont);
scanf("%f",&num[cont-1]);
}
prom=promedio(num);
printf("El promedio es: %f",prom/6);
}


float promedio (float num[6]) // ¿o era float * num?
{
int cont;
float prm;
prm=0;
for(cont=0;cont<6;cont++)
{
prm=prm+num[cont];
}
return prm;
}

Mas o menos seria asi. Ahora mismo no me acuerdo de como se indicaba que como parametro le pasabas un array de 6 elementos.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 06/04/2004, 16:01
Avatar de jocks  
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años
Puntos: 0
en arreglo empieza en 0
__________________
JUST DO IT!!!
nunk hay una segunda oportunidad para una primera buena impresion...
  #5 (permalink)  
Antiguo 22/04/2004, 11:47
 
Fecha de Ingreso: abril-2004
Ubicación: caracas
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
los arreglos comienzan en cero y si es de 5 numeros el promedio tiene q ser:
cont=0
suma=0
for(cont=0;cont<5;cont++)
// pides el numero
suma=suma+numero

fin del for

luego el promedio es: promedio=suma/5

acuerdate q en el for metes el numero a sumar y luego avanza el contador tiene q ser menor
  #6 (permalink)  
Antiguo 22/04/2004, 11:48
 
Fecha de Ingreso: abril-2004
Ubicación: caracas
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
los arreglos comienzan en cero y si es de 5 numeros el promedio tiene q ser:
cont=0
suma=0
for(cont=0;cont<5;cont++)
// pides el numero
suma=suma+numero

fin del for

luego el promedio es: promedio=suma/5

acuerdate q en el for metes el numero a sumar y luego avanza el contador tiene q ser menor q 5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:27.