Ayuda con este codigo en C
Publicado por Victor Ml Polanco (1 intervención) el 01/06/2012 19:39:45
Buenas estoy haciendo el siguiente programa:
0. Dada una cantidad de dinero en pesos y centavos, descomponerla en papeletas y monedas. Papeletas de 2000, 1000, 500, 100, 50, 25, 20, 10, 5, 1 pesos, y monedas de 50, 25, 10, 5, 1 centavos. (Cantidad de 0.00 a 20 MM).
Perdonen que no esta comentado ni nada siempre me acostumbro a comentar pero estoy un poco rapido.
Necesito que me ayuden con este ya que segun yo, la logica que use esta bn para el proceso. La funcion por el momento la puse a que me devuelva a n(El total que quede de n) que si no me equivoco deberia ser 0 ya que esto se ejecutara hasta que n valga 0.
#include <stdio.h>
#include <stdlib.h>
float dinero(float n)
{
long cash[10] = {2000,1000,500,100,50, 25, 20, 10, 5, 1};
long centavos[5] = {0.50, 0.25, 0.10, 0.5, 0.1};
long devuelta[15];
long i=0,a,b,c,d,t=0;
float r;
for (a=0;a<10;a++)
{
while(d>0)
{
d = n / cash[a];
i++;
}
devuelta[a] = i;
i=0;
for (c=0;c<=devuelta[a];c++)
{
n -= cash[a];
}
}
for (b=0;b<5;b++)
{
while(r>0)
{
r = n / centavos[b];
t++;
}
devuelta[b+a] = t;
t=0;
for (c=0;c<=devuelta[b+a];c++)
{
n -= centavos[b];
}
}
return n;
}
int main()
{
float t;
scanf("%f",&t);
printf("%f",dinero(t));
return 0;
}
0. Dada una cantidad de dinero en pesos y centavos, descomponerla en papeletas y monedas. Papeletas de 2000, 1000, 500, 100, 50, 25, 20, 10, 5, 1 pesos, y monedas de 50, 25, 10, 5, 1 centavos. (Cantidad de 0.00 a 20 MM).
Perdonen que no esta comentado ni nada siempre me acostumbro a comentar pero estoy un poco rapido.
Necesito que me ayuden con este ya que segun yo, la logica que use esta bn para el proceso. La funcion por el momento la puse a que me devuelva a n(El total que quede de n) que si no me equivoco deberia ser 0 ya que esto se ejecutara hasta que n valga 0.
#include <stdio.h>
#include <stdlib.h>
float dinero(float n)
{
long cash[10] = {2000,1000,500,100,50, 25, 20, 10, 5, 1};
long centavos[5] = {0.50, 0.25, 0.10, 0.5, 0.1};
long devuelta[15];
long i=0,a,b,c,d,t=0;
float r;
for (a=0;a<10;a++)
{
while(d>0)
{
d = n / cash[a];
i++;
}
devuelta[a] = i;
i=0;
for (c=0;c<=devuelta[a];c++)
{
n -= cash[a];
}
}
for (b=0;b<5;b++)
{
while(r>0)
{
r = n / centavos[b];
t++;
}
devuelta[b+a] = t;
t=0;
for (c=0;c<=devuelta[b+a];c++)
{
n -= centavos[b];
}
}
return n;
}
int main()
{
float t;
scanf("%f",&t);
printf("%f",dinero(t));
return 0;
}
Valora esta pregunta


0