C语言中拆分人民币面值的题

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:08:04
目前人民币共有以下几种面值(不包括角和分):
1,2,5,10,20,50,100元。
编写一个函数计算金额“X”需要多少张面值为n元的纸币。在主函数中输入一个金额值,调用该函数,计算组成该金额最少需要多少张纸币。

用C语言做

怎么编写?

#include "stdio.h"
main()
{
long money,a,b,c;
printf("input number of money :\n");
scanf("%ld",&money);
a=money/100; /* 求面值100$的张数a */
b=money%100/10; /* 求面值十位上的数字b */
c=money%10; /* 求面值个位上的数字c */
printf("%ld$ -> ",money); /* 输出标题头 */
if(a>0)
printf("%ld 100$\t",a);
if(b>=5)
{
printf("1 50$\t");
if((b-5)%2==0)
printf("%ld 20$\t",(c-5)/2);
else if(c-5>1)
printf("1 20$\t1 10$\t");
else
printf("1 10$\t");
}
else
{
if(b%2==0)
printf("%ld 20$\t",c/2);
else if(b>1)
printf("1 20$\t1 10$\t");
else