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

#include <stdio.h> #include <stdio.h> #define N 10 int main() { int arr[N]; int i, max_val, min_val, max_idx, min_idx; // 输入数组 printf("Введите 10 элементов массива:\n"); for (i = 0; i < N; i++) { scanf("%d", &arr[i]); } // 初始化最大值、最小值和下标 max_val = min_val = arr[0]; max_idx = min_idx = 0; // 遍历数组找最大和最小 for (i = 1; i < N; i++) { if (arr[i] > max_val) { max_val = arr[i]; max_idx = i; } if (arr[i] < min_val) { min_val = arr[i]; min_idx = i; } } printf("Максимальный элемент: %d, его номер: %d\n", max_val, max_idx); printf("Минимальный элемент: %d, его номер: %d\n", min_val, min_idx); return 0; } }
这段代码的功能是:输入10个整数,找出其中的最大值和最小值,并输出它们及其在数组中的下标(位置)。

代码逻辑基本正确,但有一个语法错误需要注意。

- 第2行和第3行重复包含了 `<stdio.h>`,可以去掉一个,但这不是主要问题。
- 代码末尾多了一个多余的右花括号 `}`,导致程序结构错误。检查一下花括号的配对,确保 `main` 函数正确结束。