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

#include <stdio.h> int main(void) { int arr[10]; for (int = 0; i < 10; i++) { scanf("%d", &arr[i]); } int max1 = arr[0]; int max2 = 1; int min1 = arr[0]; int min2 = 1; for (int i = 1; i < 10; i++) { if (arr[i] > max1) { max1 = arr[i]; max2 = i + 1; } if (arr[i] < min1) { min1 = arr[i]; min2 = i + 1; } } printf("%d %d %d %d\n", max1, max2, min1, min2); return 0; }
这段代码的功能是:读取10个整数,找出其中的最大值和最小值,并输出它们的值和位置(位置从1开始计数)。代码逻辑基本正确,但存在一个语法错误。

- 第5行的for循环中,变量声明写成了 `int = 0`,缺少变量名。应该给循环变量起一个名字,比如 `i`。

- 变量 `max2` 和 `min2` 的初始值设为1,这表示如果第一个元素就是最大值或最小值,位置记录是正确的。但要注意,如果数组中有多个相同的最大值或最小值,代码只记录第一次出现的位置,这可能是符合预期的。