【发布时间】:2018-01-25 03:53:42
【问题描述】:
我正在编写一个从 1 到 100 的值并将其转换为零钱的代码(即 16 美分是 1 美分、1 镍和 1 美分)。我的问题是当我打印更改值时。
标点符号必须正确,因此对于 10 美分,它必须是“1 角钱”。而不是“一毛钱”。
除了使用大量的 if 语句之外,还有没有更有效的方法来考虑所有可能有硬币但没有硬币/硬币/美分,有硬币和硬币,但没有硬币/美分等。并打印更改输出的写标点符号/组合?
谢谢!!!
// quarters
if (quarters== 1 && dimes==0 && nickels==0 && cents == 0)
printf("%d quarter.", quarters);
else if (quarters>= 1 && dimes==0 && nickels==0 && cents == 0)
printf("%d quarters.", quarters);
// include other combinations
else if (quarters==1)
printf("%d quarter, ", quarters);
else if (quarters>=1)
printf("%d quarters, ", quarters);
【问题讨论】:
-
这是 CS50 课程的练习吗?如果是,请添加 CS50 标签。
-
欢迎来到 Stack Overflow。请尽快阅读How to Ask 和About 页面,以及有关如何生成MCVE (minimal reproducible example) 的材料。如果你用'
[cs50] dime'搜索SO,你会发现相当多的相关资料;类似的查询可能会显示更多。你还没有显示你的变量声明。您可以通过仅在您知道已完成时生成停止 (.) 并在您已经打印某些内容时添加逗号空格来更有效地执行操作。这样,您就可以分别处理每枚硬币。 -
您是否了解过数组?你有没有覆盖结构?问题急需使用结构数组,但如果您还没有涉及这些结构,那么仅仅暗示“当您了解更多时会更容易”是不公平的。
标签: c