求大神!用C语言编程。最好有注释。100元人民币,换成一元、五角、一角、五分,请问有几种换法?

Python021

求大神!用C语言编程。最好有注释。100元人民币,换成一元、五角、一角、五分,请问有几种换法?,第1张

以下是c语言代码(含注释),兑换方案有3,418,951种:

#include <stdio.h>

void main()//主函数 

{

int wuFen=0//5分硬币数量

int yiJiao=0//1角硬币的数量

int wuJiao=0//5角硬币的数量

int yiYuan=0//1元硬币的数量 

int count=0//记录兑换方案次数

//内嵌四次循环,分析每种兑换情况(即计算每种硬币的数量的组合)

for(wuFen=0wuFen<=100*100/5wuFen++)

for(yiJiao=0yiJiao<=100*100/10yiJiao++)

for(wuJiao=0wuJiao<=100*100/50wuJiao++)

for(yiYuan=0yiYuan<=100*100/100yiYuan++)

//如果四种硬币总数量等于100元即10000分

if(wuFen*5+yiJiao*10+wuJiao*50+yiYuan*100==100*100)

{

//累增兑换方案次数,输出每种兑换结果

count++

printf("100元可以兑换成%d个5分硬币和%d个1角硬币和%d个5角硬币和%d个1元硬币\n",wuFen,yiJiao,wuJiao,yiYuan)

}

printf("兑换方案共有%d种。\n",count)//输出兑换方案次数

以下是程序运行结果(部分):

a,b,c,d,e,f,g,h,i,j应为整型变量;角分处理做了点更改;

改后程序如下:

#include<stdio.h>

int main()

{

float num

int a,b,c,d,e,f,g,h,i,j

printf("请输入一个金额如345.78\n")

scanf("%f",&num)

a=(int)num/100

b=(int)(num-a*100)/50

c=(int)(num-a*100-b*50)/10

d=(int)(num-a*100-b*50-c*10)/5

e=(int)(num-a*100-b*50-c*10-d*5)/2

f=(int)(num-a*100-b*50-c*10-d*5-e*2)/1

g=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1)*10)/5

h=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5)*10)

i=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1)*20)/5

j=(int)((num-a*100-b*50-c*10-d*5-e*2-f*1-g*0.5-h*0.1-i*0.05)*100)

printf("100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各有%d,%d,%d,%d,%d,%d,%d,%d,%d,%d张",a,b,c,d,e,f,g,h,i,j)

return 0

}

#include<stdio.h>

int main()

{

int m=638,yuan,jiao,fen

yuan=m/100

jiao=(m-yuan*100)/10

fen=m%10

printf("%d枚1分硬币=%d元%d角%d分\n",m,yuan,jiao,fen)

return 0

}