如何修改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
相关产品推荐
相关产品推荐

