Online Compiler C

#include <stdio.h> int main() { int arr[10]; for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } int max1, max2; if (arr[0] > arr[1]) { max1 = arr[0]; max2 = arr[1]; } else { max1 = arr[1]; max2 = arr[0]; } for (int i = 2; i < 10; i++) { if (arr[i] > max1) { max2 = max1; max1 = arr[i]; } else if (max2 < arr[i]) { max2 = arr[i]; } } } printf("%d", max1 + max2); return 0; }
这段代码的目的是从10个整数中找出最大的两个数,并输出它们的和。代码逻辑基本正确,但存在一个语法错误。

- 第21行的 `printf` 和 `return` 语句被放在了 `main` 函数的花括号外面。在C语言中,所有可执行语句都必须放在函数内部,所以需要检查花括号的配对位置。

- 另外,如果数组中有重复的最大值,比如多个相同的最大值,当前逻辑仍然能正确找出最大的两个数,这一点没有问题。