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

为何这个实现三整数求和的C程序无法正常运行?

问题排查:三个整数求和程序无法正常工作

你的程序核心问题出在scanf的格式字符串上,另外还有两处不规范写法,具体如下:

  • scanf格式字符串的换行符导致输入阻塞
    你写的scanf("%d %d %d\n", &a,&b,&c);里,格式字符串末尾的\n是多余的。scanf处理格式字符串时,会把\n当成空白字符处理,它会一直等待你输入非空白字符才会结束读取操作。这就导致你输入三个整数后,无论按多少次回车,程序都会卡在输入阶段,没法执行后续的输出代码。

  • printf字符串的换行写法不规范
    原代码里printf的字符串直接换行,虽然部分编译器能识别,但标准写法应该用转义字符\n来表示换行,这样代码的可移植性更好。

  • main函数缺少返回值
    按照C语言标准,main函数需要返回一个int类型的值,通常用return 0;表示程序正常结束。


修正后的完整代码:

#include <stdio.h>    
#include <stdlib.h>   
     
int t7(int i,int j,int k){    
    return (i+j+k);
}

int main(){ 
    int a,b,c;  
    printf("This program adds three integer values.\nPlease enter three integers separated by a space:\n"); 
    scanf("%d %d %d", &a,&b,&c);   
    printf("The result of %d+%d+%d is %d\n",a,b,c,t7(a,b,c)); 
     
    return 0;
}

现在运行程序,输入三个整数(不管是同一行用空格分隔,还是分多行输入),按下回车后就能正常输出求和结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:05:02