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

如何修改C语言代码使其遇到非数字输入时终止而非仅输入0时终止

C语言修改循环终止逻辑实现方案

核心判断依据是scanf()的返回值:该函数执行后会返回成功匹配并赋值的输入项数量,当使用%f格式符读取浮点数时:

  • 成功读入1个合法浮点数,返回值为1
  • 遇到非数字输入、输入流结束时,返回值为0或EOF(值为-1)

你可以直接替换原有逻辑,修改后完整代码如下:

#include <stdio.h>

int main(){
    float sum = 1;
    float new_number;
    
    // 仅当成功读取到合法浮点数时才继续循环
    while (scanf("%f", &new_number) == 1) {
        sum += new_number;
    }
    
    printf("Sum: %f\n", sum);
    
    return 0;
}

如果你需要同时保留「输入0也终止程序」的原有规则,只需要把循环判断条件改为:

while (scanf("%f", &new_number) == 1 && new_number != 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:02