C语言题小李是超市收银员,每次顾客付钱都要找零,求在目前纸币面额下(1角,

C语言题小李是超市收银员,每次顾客付钱都要找零,求在目前纸币面额下(1角,,第1张

为了找零时能够保证纸币张数最少,我们需要先定义好纸币的面额,然后通过不断减去纸币面额的方式来计算需要找零的张数。以下是一个示例程序,实现了对于任意的零钱找零,找零所需的纸币张数最少:

c

Copy code

#include <stdio.h>

int main() {

int money[] = {100, 50, 20, 10, 5, 1} // 纸币面额

int n = sizeof(money) / sizeof(int) // 纸币面额个数

int change, i, cnt = 0 // 需要找的零钱、循环变量、纸币张数

printf("请输入找零销余金额(元):")

scanf("%d", &change) // 输入需要找零的金额

change *= 10 // 转换此斗好为以角为单位的整数金额

for (i = 0i <ni++) {

cnt += change / money[i] // 计算需要找的张数

change = change % money[i] // 计算剩余的零钱

}

printf("需要找零%d张纸币\n", cnt) // 输出纸币张数

return 0

}

在上述代码中,我们先定义了纸币面额数组 money,然后通过 sizeof 函数计算出纸币面额的个数 n。接下来,通过输入需要找零的金额 change,将其转换为以角为单位的整数金额。森铅之后,使用循环遍历纸币面额数组,计算出需要找的张数,并用取余运算计算出剩余的零钱。最后,输出计算出的纸币张数即可

现在李盯亮脊好像没2元张....分别用20,10,5为模,得哪键和其余数

(1)20*1+5+3*1

(2)10*2+5+3*1

(3)5*5+3*1

(4)10*2+8*1

(5)20*1+8*1

#include <stdio.h>

int main(){

int n,a,b,c,d,l

scanf("%d",&n)

l=100-n

a=l/谨迟50

b=(l-a*50)/20

c=(l-a*50-b*20)/燃晌慎皮敬10

d=l-a*50-b*20-c*10

printf("应找%d元,50元%d张,20元%d张,10元%d张,1元%d张",l,a,b,c,d)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12448104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存