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

C语言float类型除法无小数输出问题求助(CS50可读性任务)

CS50可读性任务:除法结果输出异常问题解决
  • 核心问题:整数除法隐式转换
    即便你将结果变量、函数返回值定义为float类型,只要计算时的被除数或除数是int类型,C语言会优先执行整数除法(直接截断小数部分),再将结果转换为float。比如输入“Whatever”得到8个字母,若执行8 / 100,整数除法结果为0,转成float后就是0.0,最终printf输出0.00。

  • 修复方案:

    • 方案1:将除数改为浮点数,强制触发浮点除法:letters / 100.0
    • 方案2:将被除数强制转换为float类型:(float)letters / 100
  • 代码修正示例(基于常见错误场景):
    错误代码片段:

    float compute_score(int letters, int words) {
        // 整数除法,结果被截断为0
        return letters / 100;
    }
    

    修正后代码:

    float compute_score(int letters, int words) {
        // 强制浮点除法,保留小数部分
        return (float)letters / 100;
        // 或 return letters / 100.0;
    }
    
  • 验证效果:输入“Whatever”时,计算得到8.0 / 100 = 0.08,使用printf("%.2f\n", score);即可正确输出0.08。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:27:02