hola
tengo un pequeño problema o mejor una duda
me pidieron hacer una programa
que almacene a 5 personas con su peso
y sacara el promedio y cual era el de mayor peso
y el de menor peso
pero solamente pude sacar el promedio del arreglo
pero no pude comparlos para ver cual era mas pesado y el menos pesado
si alguien me puede aclarar esa duda porfavor
no es un trabajo xsicaso
quiero salir de esa duda para que a futuro no me vuelva a pasar
gracias
EI: juntando mensajes.
#include<stdio.h>
#include<conio.h>
main()
{
float peso[5];
int i;
float prom=0;
int masp=0;
int menp=0;
for(i=0;i<5;++i)
{
printf("ingrese los pesos de las personas\n");
scanf("%f",&peso);
prom=prom+peso;
}
prom=prom/i;
printf("el promedio de los pesos es %f\n",prom);
getch();
}
Una idea es declarar dos variables, una muy grande y otra muy pequeña (con respecto al problema), luego al pedir los pesos y meterlos en el array vas comparando cada peso con estas variables y si una es mayor o menor, reemplazas y ya .. modifique un poco el código de quien contesto antes para que revises la lógica.
#include<stdio.h>
#define MAX 5
int main(void)
{
float peso[5];
int i;
float prom=0;
int mayor=-999;
int menor=999;
for(i=0;i<MAX;i++)
{
printf("Peso de la persona Numero [%d]\n",i);
scanf("%f",&peso[i]);
prom=prom+peso[i];
if(peso[i]>mayor) mayor=peso[i];
if(peso[i])<menor) menor=peso[i];
}
prom=prom/MAX;
printf("el promedio de los pesos es %f\n",prom);
return 0;
}
gracias
se me olvido decir k que estoy programando con el dev-c++
ktn_ivan usa GESHI cuando postees codigo, asi es mas facil de leerlo para quienes te daran ayuda.
SeC por error pusiste a la variable mayor un valor muy pequeño
int mayor = -999;
ktn_ivan, te dejo el codigo de como yo lo haria...
#include <stdio.h>
#define MAX 5
int main( void )
{
float peso[MAX], prom = 0, mayor, menor;
int i;
for ( i = 0; i < MAX; i++ )
{
printf( "Peso de la persona numero [%d]: ", i + 1 );
fflush( stdout );
scanf( "%f", &peso[i] );
prom += peso[i];
if ( i == 0 ) mayor = menor = peso[i];
if ( peso[i] > mayor ) mayor = peso[i];
if ( peso[i] < menor ) menor = peso[i];
}
prom /= MAX;
printf( "El promedio de los pesos es: %.2f\n"
"El mayor de los pesos es: %.2f\n"
"El menor de los pesos es: %.2f\n", prom, mayor, menor );
return 0;
}
Salu10.
Cita de: nicolas_cof en 5 Junio 2010, 22:17 PM
SeC por error pusiste a la variable mayor un valor muy pequeño
No fue un error así debe ser, la idea es que cuando lea el primer dato y lo compare con la variable mayor este sea mayor y se reemplaze en la variable mayor, de ahí en adelante se compara con el nuevo valor y así =) .
Edito:
La variable menor si estaba mal xd, tenia un valor muy pequeño cuando debía ser uno muy grande .
Cita de: SeCLa variable menor si estaba mal xd, tenia un valor muy pequeño cuando debía ser uno muy grande.
;D me equivoque yo al avisarte! Pense el menor y puse la mayor :P
Salu10.
Cita de: nicolas_cof en 6 Junio 2010, 04:26 AM
Cita de: SeCLa variable menor si estaba mal xd, tenia un valor muy pequeño cuando debía ser uno muy grande.
;D me equivoque yo al avisarte! Pense el menor y puse la mayor :P
Salu10.
En esos casos, sin saber qué rango de valores vas a recibir, conviene inicializar las variables mayor y menor al primer dato que recibas.
Cita de: AkaiEn esos casos, sin saber qué rango de valores vas a recibir, conviene inicializar las variables mayor y menor al primer dato que recibas.
Si te fijas en el codigo que deje mas arriba, es exactamente lo que hago :P
Salu10.
Cierto, fallo mío que no revisé todos los posts
Primero que todo hay que tener algo en cuenta, el peso negativo no existe... por lo tanto puedes inicializar todos los valores a 0, asignar el primer peso al numero mayor y menor, mientras se van haciendo las comparaciones. Seria como el metodo de la burbuja pero sin recursividad.
Cita de: Lord R.N.A.Primero que todo hay que tener algo en cuenta, el peso negativo no existe... por lo tanto puedes inicializar todos los valores a 0, asignar el primer peso al numero mayor y menor, mientras se van haciendo las comparaciones. Seria como el metodo de la burbuja pero sin recursividad.
Mmmm pero en ese caso no tendria sentido inicializarlas a 0, ya que despues le terminas asignando un valor cuando ingresas el primer peso.
Salu10.