Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Crutchlow_13 en 6 Noviembre 2011, 20:15 pm



Título: No me imprime los decimales
Publicado por: Crutchlow_13 en 6 Noviembre 2011, 20:15 pm
Hola.

Hoy he visto los ejercicios que se proponen para hacer en C y, aunque no sé casi nada, me aventuré a hacerlos.
Código:
#include <stdio.h>
int main ()
{
 int a;
 int b;
 int resultado;
printf (" Cuantas monedas de 2 centimos?");
 scanf ("%d",&a);
printf ("Cuantas monedas de 2 euros?");
scanf("%d",&b);
resultado = (a * 0.02) + (b * 2);
printf("%d",resultado);
return 0;
}

El ejercicio era con más monedas y billetes pero creí que no era necesario hacerlos todos :xD
El objetivo es que me de el resultado en euros ingresando el número de monedas de cada uno.
No sé si me he explicado bien.

Yo creo que el código está bien pero no me imprime los decimales, ¿alguien sabe por qué?

Saludos y gracias de antemano.


Título: Re: No me imprime los decimales
Publicado por: ..:ALT3RD:.. en 6 Noviembre 2011, 20:39 pm
El problema esta en que declaras las variables con int , int significa entero, por deduccion int solo usa numeros enteros por lo tanto no funciona con decimales.

Un tipo de variable que funciona con decimales puede ser float. Solo debes sustituir los int por float a la hora de declarar la variable.

Un salu2!



Título: Re: No me imprime los decimales
Publicado por: Crutchlow_13 en 6 Noviembre 2011, 20:52 pm
El problema esta en que declaras las variables con int , int significa entero, por deduccion int solo usa numeros enteros por lo tanto no funciona con decimales.

Un tipo de variable que funciona con decimales puede ser float. Solo debes sustituir los int por float a la hora de declarar la variable.

Un salu2!


He cambiado los int por float y ahora el resultado me da cero. ¿Por qué?
Gracias. saludos!
P.D: Por qué si no pongo getchar(); antes de return 0; no se puede apreciar bien el resultado porqué la pantalla se va muy rápido.


Título: Re: No me imprime los decimales
Publicado por: Queta en 6 Noviembre 2011, 20:55 pm
Simplemente busca un poco...

http://www.cplusplus.com/reference/clibrary/cstdio/printf/ (http://www.cplusplus.com/reference/clibrary/cstdio/printf/)


Título: Re: No me imprime los decimales
Publicado por: Don Pollo en 6 Noviembre 2011, 23:38 pm
En el printf, donde pone "%d" debes cambiarlo a "%f" que es el de leer variables de tipo float.


Título: Re: No me imprime los decimales
Publicado por: rir3760 en 7 Noviembre 2011, 01:01 am
P.D: Por qué si no pongo getchar(); antes de return 0; no se puede apreciar bien el resultado porqué la pantalla se va muy rápido.
Ese no es problema del programa sino de tu entorno de desarrollo (IDE), la mayoría como los basados en LCC o la versión gratuita de Microsoft no tienen ese problema.

¿Cual estas utilizando? (Si es Dev-C++ simplemente cambia a otro)

Un saludo