You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CS50 PSET1 CASH问题:for循环实现无输出,请求代码排查

问题排查与修复

核心错误:提前调用return终止程序

你的代码在第一个计算quarter的for循环结束后,执行了return quarter;——main函数中的return语句会直接终止整个程序,导致后续计算dime、nickel、penny的循环,以及最终求和、打印的代码完全不会被执行。所有return [变量];的语句都是多余的错误代码,必须删除。

次要问题:打印格式错误

原打印语句printf("Total coins %i: ", coins);的占位符位置错误,无法正确输出结果,需要调整格式。

修复后的完整代码

#include <stdio.h>
#include "cs50.h"

int main(void)
{   
    int cents;
    do
    {
        cents = get_int("Cash owed (in cents): ");

    } while (cents < 0);

    int quarter = 0, dime = 0, nickel = 0, penny = 0;
    
    for (; cents >= 25; quarter++)
    {
        cents -= 25;
    }
    for (; cents >= 10; dime++)
    {
        cents -= 10;
    }
    for (; cents >= 5; nickel++)
    {
        cents -= 5;
    }
    for (; cents >= 1; penny++)
    {
        cents -= 1;
    }
    
    int coins = quarter + dime + nickel + penny;
    printf("Total coins: %i\n", coins);
    
    return 0;
}

额外优化说明

  • 变量初始化时直接赋值为0,避免未初始化的潜在问题
  • 使用cents -= 25替代cents = cents -25,代码更简洁
  • main函数末尾添加return 0;,符合C语言标准规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:59:54