作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于学校,我要编写一个 C 程序,该程序需要一定数量的现金并返回达到该金额所需的最少数量的硬币。我不知道我做错了什么。我一直在调整和尝试各种不同的事情,但我似乎无法完全调试该程序。
该程序对某些输入给出了正确答案,但夸大了许多输入所需的硬币数量。
这是我到目前为止所拥有的。
#include <stdio.h>
int main()
{
float cash;
int n;
int counter=0;
int quarters=0;
int dimes=0;
int nickels=0;
int pennies=0;
for (;;)
{
printf("Enter change amount: ");
scanf("%f",&cash);
if (cash > 0)
{
break;
}
}
n = cash * 100;
counter = 0;
while (n > 0)
{
while (n >= 25)
{
counter ++;
n = n - 25;
quarters ++;
printf("%i\n",n);
}
while (n >= 10 && n < 25)
{
counter ++;
n = n - 10;
dimes ++;
printf("%i\n",n);
}
while (n >= 5 && n < 10)
{
counter ++;
n = n - 1;
nickels++;
printf("%i\n",n);
}
while (n > 0 && n < 5)
{
counter ++;
n = n - 1;
pennies ++;
printf("%i\n",n);
}
}
printf("%d\n",counter + n);
printf("%i quarters, %i dimes, %i nickels, %i pennies\n",
quarters, dimes, nickels, pennies);
return 0;
}
最佳答案
我有点惊讶他们希望你使用break来退出循环,因为你通常希望循环“自然”地结束(并且你通常为switch语句保存break)。像这样的东西应该可以工作,使用整数除法和模运算符(编辑注释:我使用两个整数而不是单个 float ,因为后者不准确。如果更有知识的人想要展示如何使用 float 来做到这一点,那么有趣。):
#include <stdio.h>
int main() {
int dollar, cent;
int q = 0;
int d = 0;
int n = 0;
int p = 0;
int re;
printf("Enter amount: ");
scanf(" %d.%d", &dollar, ¢);
q = dollar * 4;
re = cent;
q = q + (re / 25);
re = re % 25;
d = re / 10;
re = re % 10;
n = re / 5;
re = re % 5;
p = re;
printf("q %d d %d n %d p %d\n", q, d, n, p);
return 0;
}
例如,如果您获得了秒数并希望从中找到分钟:秒,则此方法也适用。如果给你 65 秒,则分钟部分为 65/60(即 1),而秒部分就是除以 60 后的余数,即 65 % 60(即 5)。
关于c - While-循环中的错误使计数超出条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50402515/
我是一名优秀的程序员,十分优秀!