首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++硬币换算hw

C++硬币换算hw
EN

Stack Overflow用户
提问于 2019-07-22 19:17:48
回答 1查看 955关注 0票数 0

我的代码的最后一部分似乎没有运行

代码语言:javascript
运行
复制
#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美分,有人能告诉我我缺了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-22 19:29:50

一个更好的答案是10个季度,1个五分钱,3个便士。尽管如此。

我不会使用这个特定的算法,尽管扫描并不能告诉我明显的问题。我会通过抛出一角硬币( double)进行调试,并验证它是否是您所认为的,然后再使用nickles ( double),并确保这个值也是合理的。

我会这样做:

代码语言:javascript
运行
复制
int dimes = cents / 10;
int nickles = (cents % 10) / 5;
int pennies = (cents % 5);

如果美分是58,那么一角硬币= 5,美分% 10是8,除以5是1,而美分%5是3。

但是,如果您对编程很认真,那么将大量cout语句放入您的代码中并确保值成为您所认为的那样是值得的。

此外,如果您不要求输入,而是注释掉该代码并硬编码您的测试数据,这将更快。一旦您得到了正确的测试结果,然后切换到要求输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57152448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档