谁来帮我讲解一下这个C语言的程序

来源:百度知道 编辑:UC知道 时间:2024/04/29 17:20:46
目前人民币共有以下几种面值(不包括角和分):
1元,2元,5元,10元,20元,50元,100元
编写一个函数计算金额"X"需要多少张面值为n元的纸币。在主函数中输入一个金额值,调用该函数,计算组成该金额最少需要多少张纸币。
下面是答案。我就是不知道为什么子函数里面要那么做。。谁能帮我讲解一下?万分感谢!再有没有其他的做法了?
#include <stdio.h>
void zb(int b)
{
int a[7],i,j=0;

a[0]=b/100;
a[1]=b%100/50;
a[2]=b%100%50/20;
a[3]=b%100%50%20/10;
a[4]=b%100%50%20%10/5;
a[5]=b%100%50%20%10%5/2;
a[6]=b%100%50%20%10%5%2/1;
for (i=0;i<7;i++)
{
j+=a[i];
}
printf("%d\n",j);
}
void main()
{
int x;
scanf("%d",&x);
zb(x);
}
a[0]=b/100; // "/"是除 "%"取余,自己看,不难吧,优先级自己查
a[1]=b%100/50;
a[2]=b%100%50/20;
a[3]=b%100%50%20/10;
a[4]=b%100%50%20%10/5;
a[5]=b%100%50%20%10%5/2;
a[6]=b%100%50%20%10%5%2/1;
这里有什么优先级?不是很懂啊!

#include <stdio.h>
void zb(int b) //定义函数,变量整型
{
int a[7],i,j=0; //变量定义

a[0]=b/100; // "/"是除 "%"取余,自己看,不难吧,优先级自己查
a[1]=b%100/50;
a[2]=b%100%50/20;
a[3]=b%100%50%20/10;
a[4]=b%100%50%20%10/5;
a[5]=b%100%50%20%10%5/2;
a[6]=b%100%50%20%10%5%2/1;
for (i=0;i<7;i++) //for循环
{
j+=a[i]; //把j+a[i]给j
}
printf("%d\n",j); //输出
}
void main() //主函数
{
int x; //定义x为整型
scanf("%d",&x); //输入要计算的金额x
zb(x); //执行函数zb(x);
}

数组a[7]中的元素a[0]——a[6]分别是100,50,20,10,5,2,1的张数
循环求总的纸币数量j