You need to enable JavaScript to run this app. C语言实现硬币总金额计算程序的金额计算与输出问题求助
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现硬币总金额计算程序的金额计算与输出问题求助

作业要求拆解
  • 交互规则:每询问一类硬币数量并接收输入后,立刻输出回显你输入了X(X为用户本次输入的数值)
  • 硬币面值换算标准:
    • penny:1美分/枚
    • nickel:5美分/枚
    • dime:10美分/枚
    • quarter:25美分/枚
  • 最终输出要求:全部输入完成后按你持有$XX.XX格式输出总美元金额,最后输出Thank you.
现有代码错误修正点
  • 原代码询问语句为英文,需替换为作业要求的中文交互文本
  • 每类输入完成后未添加回显逻辑
  • 未按面值换算总金额,仅简单累加了硬币数量
  • 直接将数值变量传入printf作为第一个参数,属于语法错误(printf第一个参数必须是格式控制字符串)
  • 总金额变量定义为int,无法存储带小数的美元金额
  • 新增精度优化:先以整数形式计算总美分数,再转换为美元,避免浮点数精度误差导致的输出格式错误
修正后可直接运行的代码
#include<stdio.h>
#include<stdlib.h>

int main(void) {
    int pennyTotal, nickleTotal, dimeTotal, quarterTotal;
    int total_cents;
    double total_dollars;

    // 处理pennies输入
    printf("你有多少pennies?\n");
    scanf_s("%i", &pennyTotal);
    printf("你输入了%d\n", pennyTotal);

    // 处理nickels输入
    printf("你有多少nickels?\n");
    scanf_s("%i", &nickleTotal);
    printf("你输入了%d\n", nickleTotal);

    // 处理dimes输入
    printf("你有多少dimes?\n");
    scanf_s("%i", &dimeTotal);
    printf("你输入了%d\n", dimeTotal);

    // 处理quarters输入
    printf("你有多少quarters?\n");
    scanf_s("%i", &quarterTotal);
    printf("你输入了%d\n", quarterTotal);

    // 按面值计算总美分,再转换为美元
    total_cents = pennyTotal * 1 + nickleTotal * 5 + dimeTotal * 10 + quarterTotal * 25;
    total_dollars = total_cents / 100.0;

    // 固定保留两位小数输出总金额
    printf("你持有$%.2f\n", total_dollars);
    printf("Thank you.\n");

    system("pause");
    return 0;
}

环境适配说明:如果使用非Visual Studio编译环境(如GCC、Clang),可将代码中所有scanf_s替换为标准C库的scanf,其余逻辑无需调整。

作业示例用例验证
  • 输入10枚pennies → 回显你输入了10,对应贡献10美分
  • 输入5枚nickels → 回显你输入了5,对应贡献25美分
  • 输入1枚dimes → 回显你输入了1,对应贡献10美分
  • 输入1枚quarters → 回显你输入了1,对应贡献25美分
  • 总美分累计70 → 输出你持有$0.70,与作业示例完全匹配
  • 最终输出Thank you.,符合流程要求

内容的提问来源于stack exchange,提问作者user15179586

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 03:45:04