SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: dadevil_g en Miércoles 29 de Octubre de 2003, 07:07
-
Pedi la colaboracion del amigo Blag pero tampoco pudo, y yo ya no se que hacer, le e intentado durante una semana sin resultados positivos, si alguien me puede decir que esta mal en esto se lo agradecería. :hitcomp:
#include <stdio.h>
#include <conio.h>
int main (void)
{
clrscr();
int c,d1,d2,d3,d4,d5,d6,d7,aux;
float d8,d9,d10;
printf(" **************************************n");
printf(" * PROGRAMA QUE DIVIDE UNA CANTIDAD *n");
printf(" * EN MONEDAS DE 50,20,10,5,2,1 *n");
printf(" * .50,.20,.10,.5 *n");
printf(" * por: daredevil_g@hotmail.com *n");
printf(" **************************************n");
printf("n");
printf(" Digita tu cantidad: ");
scanf("%d",&c);
d1=c/50; //Monedas de 50
aux=c%50; //Residuo
d2=aux/20; //Monedas de 20
aux=aux%20; //Residuo
d3=aux/10; //Monedas de 10
aux=aux%10; //Residuo
d4=aux/5;
aux=aux%5;
d5=aux/2;
aux=aux%2;
d6=aux/1;
aux=aux%1;
d7=aux/.50;
aux=aux%0.50;
d8=aux/.20;
aux=aux%0.20;
d9=aux/.10;
aux=aux%0.10;
d10=aux/0.5;
printf("Tu resultado es: %d monedas de 50n",d1);
printf("Tu resultado es: %d monedas de 20n",d2);
printf("Tu resultado es: %d monedas de 10n",d3);
printf("Tu resultado es: %d monedas de 5n",d4);
printf("Tu resultado es: %d monedas de 2n",d5);
printf("Tu resultado es: %d monedas de 1n",d6);
printf("Tu resultado es: %d monedas de .50n",d7);
printf("Tu resultado es: %f monedas de .20n",d8);
printf("Tu resultado es: %f monedas de .10n",d9);
printf("Tu resultado es: %f monedas de .5n",d10);
getch();
}
:ayuda:
-
Hola, tu problema es que no tienes cuidado con los tipos, para empezar c es de tipo entero, y estas pidiendo que te introduzcan un numero decimal, debería ser float, y luego la operación % da problemas con tipos que no sean enteros, así que lo mejor es multiplicar el número que introducen por 100 si es que solo quieres 2 decimales, y luego operar con todo entero. Te adjunto el codigo que funciona, pero antes entiende lo que te digo eh?:
#include <stdio.h>
#include <conio.h>
int main (void)
{
//clrscr();
int c,d1,d2,d3,d4,d5,d6,d7,aux,aux2;
float cn,d8,d9,d10;
printf(" **************************************n");
printf(" * PROGRAMA QUE DIVIDE UNA CANTIDAD *n");
printf(" * EN MONEDAS DE 50,20,10,5,2,1 *n");
printf(" * .50,.20,.10,.5 *n");
printf(" * por: daredevil_g@hotmail.com *n");
printf(" **************************************n");
printf("n");
printf(" Digita tu cantidad: ");
scanf("%f",&cn);
c=cn*100;
d1=c/5000; //Monedas de 50
aux=c%5000; //Residuo
d2=aux/2000; //Monedas de 20
aux=aux%2000; //Residuo
d3=aux/1000; //Monedas de 10
aux=aux%1000; //Residuo
d4=aux/500;
aux=aux%500;
d5=aux/200;
aux=aux%200;
d6=aux/100;
aux=aux%100;
d7=aux/50;
aux=aux%50;
d8=aux/20;
aux=aux%20;
d9=aux/10;
aux=aux%10;
d10=aux/5;
printf("Tu resultado es: %d monedas de 50n",d1);
printf("Tu resultado es: %d monedas de 20n",d2);
printf("Tu resultado es: %d monedas de 10n",d3);
printf("Tu resultado es: %d monedas de 5n",d4);
printf("Tu resultado es: %d monedas de 2n",d5);
printf("Tu resultado es: %d monedas de 1n",d6);
printf("Tu resultado es: %d monedas de .50n",d7);
printf("Tu resultado es: %f monedas de .20n",d8);
printf("Tu resultado es: %f monedas de .10n",d9);
printf("Tu resultado es: %f monedas de .5n",d10);
getch();
}
:ball:
-
Muchas :gracias: por tu :ayuda: ahora si o pude hacer jalar bien :comp: porque no me salia nada nada bien, no cabe duda que el mundo de la programacion es muy grande y yo apenas comienzo, nos vemos luego y gracias nuevamente. :adios:
-
dadevil_g una recomendación. Nunca declares clrscr(); antes de las declaraciones de variables. De ahí tu error.