我的代码的最后一部分似乎没有运行
#include <iostream>
#include <cmath>
int main() {
int dollars;
int cents;
std::cout << "Please enter your amount in the format of dollars and cents separated by a space: ";
std::cin >> dollars >> cents;
double quarters = dollars/0.25;
int whole_quarters = (int) quarters;
double dimes = cents/10;
int whole_dimes = (int) dimes;
double nickels = (dimes - whole_dimes)/0.5;
int whole_nickels = (int) nickels;
int pennies = std::fmod((dimes - whole_dimes),0.5);
std::cout << dollars << " dollars and " << cents << " cents are:\n";
std::cout << whole_quarters << " quarter " << whole_dimes << " dimes " << whole_nickels << " nickels " << pennies << " pennies ";
return 0;
}我输入了2.58,但是输出是8/4,5美分,0美分,0便士,应该是1美分和3美分,有人能告诉我我缺了什么吗?
发布于 2019-07-22 19:29:50
一个更好的答案是10个季度,1个五分钱,3个便士。尽管如此。
我不会使用这个特定的算法,尽管扫描并不能告诉我明显的问题。我会通过抛出一角硬币( double)进行调试,并验证它是否是您所认为的,然后再使用nickles ( double),并确保这个值也是合理的。
我会这样做:
int dimes = cents / 10;
int nickles = (cents % 10) / 5;
int pennies = (cents % 5);如果美分是58,那么一角硬币= 5,美分% 10是8,除以5是1,而美分%5是3。
但是,如果您对编程很认真,那么将大量cout语句放入您的代码中并确保值成为您所认为的那样是值得的。
此外,如果您不要求输入,而是注释掉该代码并硬编码您的测试数据,这将更快。一旦您得到了正确的测试结果,然后切换到要求输入。
https://stackoverflow.com/questions/57152448
复制相似问题