我真的是编程新手,我刚开始尝试哈佛CS50的一些问题。如果有人可以向我指出我的代码错误的原因,将不胜感激。
编译并运行代码后,没有任何输出。
另一方面,有人可以向我解释“回合”的工作原理吗?我不是真的从终端上的人那里得到它。谢谢!
#include <stdio.h>
#include <math.h>
int main(void)
{
printf(" O hai! How much change is owed?\n");
float change;
change=GetFloat();
double round(double change);
int x= change*100;
int i=0;
while(x>25) {
x=x-25;
i++;
return i;
}
while(x>10) {
x= x-10;
i++;
return i;
}
while(x>5) {
x=x-5;
i++;
return i;
}
while(x>1) {
x=x-1;
i++;
return i;
}
printf("%d\n",i);
}
最佳答案
第一件事
在用户输入美元后
您应该立即将其乘以100以将其转换为美分
并使用舍入功能。
采用
change = round(change) ;
在你的代码中
因为变化是浮点值
但是我们需要整数形式的钱来计算使用的硬币数量
所以我们使用round将其更改为整数
由于我们无法使用浮点数来计算使用的硬币数量
然后:
return i ;
声明不应该使用
在每个循环中
从每个循环中删除它。
如果您在每个活块中使用它
它将计算那些特定的硬币
然后退出程序。
因此,删除所有这些
return i
语句你可以写
return 0 ;
之后
printf("%d\n", i);
声明!关于c - CS50 PSET 1贪婪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30640633/