Онлайн компилятор C

#include <stdio.h> int main() { int i,j,s; scanf("%d %d %d",&i,&j); s=i+j; printf("%d\n",s); return 0; }
这段代码试图读取三个整数,但只提供了两个变量的地址,然后计算前两个数的和并输出。

- 在 scanf 中,你写了三个格式说明符 %d,但只提供了两个变量地址 &i 和 &j,缺少了 &s。这会导致 scanf 读取第三个整数时写入未知内存,可能引发程序崩溃或未定义行为。
- 变量 s 被声明但未初始化,且 scanf 中没有读取它的值,所以 s 的值是未定义的,但代码中又用 s 存储 i+j 的结果,这覆盖了未定义的值,逻辑上 s 的初始值无关紧要,但 scanf 的参数数量不匹配是主要问题。