[ Foro de C ]

Mayor de 3 números

17-Feb-2014 00:57
Ivan MalGanis
4 Respuestas

Hola Nacho, estoy siguiendo tu curso de C y me está ayudando bastante, me parece muy bueno y bien estructurado pero me surge una duda:

En este capítulo:
http://www.nachocabanes.com/c/curso/cc02.php

... apartado 2.2.2, el segundo de los ejercicios propuestos:

"Crear un programa que use tres variables x,y,z. Las tres serán números reales, y nos bastará con dos cifras decimales. Deberá pedir al usuario los valores para las tres variables y mostrar en pantalla cual es el mayor de los tres números tecleados."

Esto es lo que he conseguido hacer pero no sé si con lo que he aprendido hasta ahora siguiendo tu curso puedo hacer que el programa me diga cuál de los 3 números es mayor:

 
#include <stdio.h>
 
int main() {
    float x;
    float y;
    float z;
    float higher;
 
    printf("Introduce 'x' value");
    scanf("%f"), &x;
    printf("Introduce 'y' value");
    scanf("%f"), &y;
    printf("Introduce 'z' value");
    scanf("%f"), &z;
    getchar();
 
    higher = ;
    printf("The highest number is %f", higher);
    getchar();
 
    return 0;
}
 



17-Feb-2014 11:44
Nacho Cabanes (+32)

Efectivamente, es un fallo del curso: hasta que no llegues al apartado 3 y veas cómo comprobar condiciones, no podrás resolver esa pregunta. Me lo anoto para moverla un poco más atrás y poner otra sencilla en su lugar.


17-Feb-2014 13:28
Ivan MalGanis

Ok, muchas gracias por la contestación. Ahora me surge otra duda, como no podía terminar el programa decidí dejarlo de esta forma y comprobar si funcionaba:

 
#include <stdio.h>
 
int main() {
    float x;
    float y;
    float z;
 
    printf("Introduce 'x' value");
    scanf("%f"), &x;
    printf("Introduce 'y' value");
    scanf("%f"), &y;
    printf("Introduce 'z' value");
    scanf("%f"), &z;
    getchar();
 
    printf("The highest number is %f", x);
    getchar();
 
    return 0;
}
 


El problema es que me da un resultado aleatorio, a veces me muestra "0.0000" o algún número muy grande como por ejemplo "2974136243845159600000000000.000000000"

P.D.: Estaría bien que estos foros tuvieran una opción de editar un mensaje una vez lo has enviado :)


17-Feb-2014 15:51
Nacho Cabanes (+32)

Es raro... Parece correcto... El valor de "x" debería ser el bueno. Defines, lees y muestras como "float". Lo único que debería poder ocurrir es que pudiera perder precisión si introduces datos con muchas cifras...

No!!! Ya lo he visto! El formato de "scanf" es incorrecto. Estás cerrando el paréntesis antes de lo que debes. Has de cerrarlo justo antes del "punto y coma".

Y no hay prisa por añadir la opción de editar los mensajes  ;-)  . Como usuario, puedes incluir una aclaración en un mensaje posterior, mientras que si alguien edita un mensaje que ya ha sido respondido, la conversación puede quedar "coja", así que hay otras prioridades en las mejoras de la estructura interna de los foros, como el sistema de votaciones para que los usuarios más participativos puedan tener al menos una valoración. Para caso de emergencias, los administradores sí podemos editar mensajes.


17-Feb-2014 22:12
Ivan MalGanis

Ahhh cierto vaya fallo más tonto, no me di cuenta :/. Pues nada, muchas gracias de nuevo :D






(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.)