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个整数,然后找出最大值和最小值以及它们的位置(索引从1开始计数),最后输出结果。代码整体思路正确,但存在几个问题。

- 第12行 `max_idx=1;` 应该是 `max_idx=i;`,你写成了固定值1,这样当最大值出现在其他位置时,记录的索引会错误。
- 第18行的 `printf` 语句中,括号位置有误。你写成了 `printf(...),max_idx+1,...`,这会导致语法错误。正确的写法应该是 `printf("%d %d %d %d\n", max_idx+1, max_val, min_idx+1, min_val);`,注意逗号的位置在括号内。