一个简单(奇怪)的 C 语言问题

9次阅读

共计 582 个字符,预计需要花费 2 分钟才能阅读完成。

使用的 IDE 是 CLion,编译器是其自带的 MinGW 11.0 w64

下面的代码使用 chatgpt 加了注释,主要的问题是:

在直接给定输入

8

1 9 2 6 0 8 1 7

时,结果为 0.

而再次给定输入

8

1 9 2 6 90 8 1 7

时,结果还是 0.

而手动一个一个输入则正常显示 1.

虽然描述的很离奇,但是确实是这样,即:第一次的结果会影响第二次的结果,使之变成第一次的结果

我问了我们教 C 语言的老师,连他也不知道怎么回事,说可能是 CLion 的问题,但是这个答案并不能令我信服,

故来寻求各位 V 友帮助

求各位 V 友解答 QAQ

代码如下:

#include 

int main() {
    int n;
    scanf("%d", &n); // 从标准输入中读取一个整数,存储到变量 n 中

    int min;
    scanf("%d", &min); // 假设输入的第一个数为最小值,存储到变量 min 中
    int num;
    for (int i = 1; i < n; i++) { // 循环读取剩余的 n-1 个整数
        scanf("%d", &num); // 从标准输入中读取一个整数,存储到变量 num 中
        printf("%dn", num); // 将读取的整数打印到标准输出,以换行符结束

        if (num < min) { // 检查当前读取的整数是否比最小值小
            min = num; // 更新最小值为当前读取的整数
        }
    }
    printf("%d", min); // 打印最小值到标准输出

    return 0; // 返回 0 表示程序正常结束
}

正文完
 0