elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: duda en c  (Leído 4,828 veces)
ktn_ivan

Desconectado Desconectado

Mensajes: 2


Ver Perfil
duda en c
« en: 4 Junio 2010, 17:56 pm »

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.

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. main()
  4. {
  5.      float peso[5];
  6.      int i;
  7.      float prom=0;
  8.      int masp=0;
  9.      int menp=0;
  10.  
  11.      for(i=0;i<5;++i)
  12.      {
  13.          printf("ingrese los pesos de las personas\n");
  14.          scanf("%f",&peso);
  15.          prom=prom+peso;
  16.  
  17.      }
  18.      prom=prom/i;
  19.      printf("el promedio de los pesos es %f\n",prom);
  20.      getch();
  21. }


« Última modificación: 4 Junio 2010, 21:30 pm por Eternal Idol » En línea

SeC

Desconectado Desconectado

Mensajes: 109


@susan.


Ver Perfil WWW
Re: duda en c
« Respuesta #1 en: 4 Junio 2010, 18:16 pm »

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.

Código
  1. #include<stdio.h>
  2.  
  3. #define MAX 5
  4.  
  5. int main(void)
  6. {
  7.      float peso[5];
  8.      int i;
  9.      float prom=0;
  10.      int mayor=-999;
  11.      int menor=999;
  12.  
  13.      for(i=0;i<MAX;i++)
  14.      {
  15.          printf("Peso de la persona Numero [%d]\n",i);
  16.          scanf("%f",&peso[i]);
  17.          prom=prom+peso[i];
  18.          if(peso[i]>mayor) mayor=peso[i];
  19.          if(peso[i])<menor) menor=peso[i];
  20.  
  21.      }
  22.      prom=prom/MAX;
  23.      printf("el promedio de los pesos es %f\n",prom);
  24.      return 0;
  25. }


« Última modificación: 6 Junio 2010, 03:26 am por SeC » En línea

Educad a los niños y no sera necesario castigar a los hombres - Pitagoras.
ktn_ivan

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: duda en c
« Respuesta #2 en: 4 Junio 2010, 18:46 pm »

gracias
se me olvido decir k que estoy programando con el dev-c++
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: duda en c
« Respuesta #3 en: 4 Junio 2010, 18:56 pm »

ktn_ivan usa GESHI cuando postees codigo, asi es mas facil de leerlo para quienes te daran ayuda.
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: duda en c
« Respuesta #4 en: 5 Junio 2010, 22:17 pm »

SeC por error pusiste a la variable mayor un valor muy pequeño

Código:
int mayor = -999;

ktn_ivan, te dejo el codigo de como yo lo haria...

Código:
#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.
« Última modificación: 5 Junio 2010, 22:25 pm por nicolas_cof » En línea

SeC

Desconectado Desconectado

Mensajes: 109


@susan.


Ver Perfil WWW
Re: duda en c
« Respuesta #5 en: 6 Junio 2010, 03:25 am »

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 .
« Última modificación: 6 Junio 2010, 03:27 am por SeC » En línea

Educad a los niños y no sera necesario castigar a los hombres - Pitagoras.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: duda en c
« Respuesta #6 en: 6 Junio 2010, 04:26 am »

Cita de: SeC
La 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 línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: duda en c
« Respuesta #7 en: 6 Junio 2010, 10:54 am »

Cita de: SeC
La 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.
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: duda en c
« Respuesta #8 en: 6 Junio 2010, 16:50 pm »

Cita de: Akai
En 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.
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: duda en c
« Respuesta #9 en: 6 Junio 2010, 17:22 pm »

Cierto, fallo mío que no revisé todos los posts
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines