No me imprime los decimales

Iniciado por Crutchlow_13, 6 Noviembre 2011, 20:15 PM

0 Miembros y 1 Visitante están viendo este tema.

Crutchlow_13

Hola.

Hoy he visto los ejercicios que se proponen para hacer en C y, aunque no sé casi nada, me aventuré a hacerlos.
#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.

..:ALT3RD:..

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!

"Mañana sabrás que hoy no sabes nada"

Crutchlow_13

Cita de: ..: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!


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.

Queta

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

Don Pollo

En el printf, donde pone "%d" debes cambiarlo a "%f" que es el de leer variables de tipo float.

rir3760

Cita de: Crutchlow_13 en  6 Noviembre 2011, 20:52 PMP.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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language