Online Compiler C

#include <stdio.h> int main() { int A[10]; for (int i = 0; i < 10; i++) { scanf("%d", &A[i]); } int max_val = A[0]; int max_idx = 0; int min_val = A[0]; int min_idx = 0; for (int i = 1; i < 10; i++) { if (A[i] > max_val) { max_val = A[i]; max_idx = 1; } if (A[i] < min_val) { min_val = A[i]; min_idx = i; } } printf("%d %d %d %d\n", max_idx + 1, max_val, min_idx + 1, min_val); return 0; }
这段代码的功能是:读入10个整数,找出最大值及其位置、最小值及其位置,然后输出。但代码中存在一个逻辑错误。

- 在更新最大值索引时,你写的是 `max_idx = 1`,这会把索引固定为1,而不是记录当前最大值所在的位置。应该用 `i` 来记录索引。
- 另外,注意题目要求输出的顺序和格式,确认一下是否与预期一致。