C程序在while循环中两次打印1,为什么?

63lcw9qa  于 2023-06-05  发布在  其他
关注(0)|答案(2)|浏览(152)

代码片段

```c
#include <stdio.h>

int main(void) {
  short int a;
  scanf("%hd", &a);
  while (a != 5) {
    printf("%hd\n", a);
    a++;
  }
  return 0;
}

这段代码的输出是:
代码片段

1
1
2
3
4

我期望输出为:
代码片段

1
2
3
4
5

但是为什么输出与我期望的不同呢?
我尝试了以下方法:

  • 我已经检查了代码的语法。这是正确的。
  • 我在不同的编译器上运行了代码。所有编译器的输出都是相同的。
  • 我尝试了不同的a值。对于a的所有值,输出都是相同的。
bnl4lu3b

bnl4lu3b1#

我认为第一个“1”是你的输入。
我试着运行同样的代码,这就是我观察到的第一个“1”是我给出的输入,然后代码从1打印到4。

jslywgbw

jslywgbw2#

@Red Sky是对的,第一个是你的输入,x1c 0d1x

相关问题