[ Foro de C ]

Consulta programacion en C

04-Jun-2019 17:58
Invitado (Valentin)
3 Respuestas

Hola tengo que hacer un programa en C para la facultad que me tiene que leer 100 valores y me tiene que imprimir el menor y el mayor de esos valores, logre conseguir que me muestre el numero mayor pero hace 2 dias estoy tratando de que me muestre el menor, me podrian ayudar a ver como lo puedo escribir. muchas gracias.
este es el programa con el que me muestra el numero mayor.

int main()
{ int i=1,c=0;
 float num,suma,a,b;
  do
{
        printf("Ingrese un valor: ");
    scanf("%f",&num);
     c++;
     suma=suma+num;
    printf("Usted ha ingresado %d de 100 valores.\n",c);
    if(num>a)
       {
           a=num;
       }
    printf("elmayor es%.2f \n",a);
    i++;
} while(i<=100);

}


04-Jun-2019 18:45
Nacho Cabanes (+83)

Ya casi lo tienes. Es el mismo esqueleto que para el máximo, pero comparando al revés:  if(num < b)  {b=num; }

Aun así, dos cosas:

1. Yo no los llamaría "a" y "b", sino "maximo" y "minimo".

2. Te falta dar un valor inicial. Tal y como lo tienes, tendrá basura como valor inicial y puede fallar.


04-Jun-2019 22:12
Invitado (Valentin)

Lo habia pensado asi como me decis pero no puedo lograr que me funcione, el mayor funciona bien pero el menor no importa que valor le coloque en el menor siempre me queda en 0, ya probe darle como valor inicial 0 a las dos variables pero me sigue sin funcionar, solamente me funciona el menor si ingreso numeros negativos.

#include <stdio.h>
#include <stdlib.h>

int main()
{ int i=1,c=0;
 float num,suma,mayor=0,menor=0;
  do
{
    printf("Ingrese un valor: ");
    scanf("%f",&num);
     c++;
     suma=suma+num;
    printf("Usted ha ingresado %d de 100 valores.\n",c);
    if(num>mayor)
       {
           mayor=num;
       }
       if (num<menor)
       {
          menor=num;
       }
    printf("el mayor es %.2f \n",mayor);
    printf("El menor es %.2f \n",menor);
    i++;
} while(i<=100);

}


04-Jun-2019 22:44
Nacho Cabanes (+83)

Efectivamente, ese es el problema. No puedes fijar los valores de forma arbitraria. Lo correcto es tomar el mayor y el menor a partir del primer dato introducido por el usuarioenen vez de darles el valor cero.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)