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

#include <stdio.h> int main() { int SIZE = 10; int i; int max1, max2; int a[SIZE]; int cymma; for (i = 0; i < SIZE; i++) { scanf("%d", &a[i]); } if (a[0] > a[1]) { max1 = a[0]; max2 = a[1]; } else { max1 = a[1]; max2 = a[0]; } for (i = 2; i < SIZE; i++) { if (a[i] > max1) { max2 = max1; max1 = a[i]; } else if (a[i] > max2) { max2 = a[i]; } symma = max1 + max2; printf("%d", symma); } return 0; }
这段代码的目的是从10个整数中找出最大的两个数,并计算它们的和。但代码中存在一些逻辑问题。

- 变量名 `cymma` 和 `symma` 不一致,导致编译错误。你需要统一变量名。
- 在循环内部每次迭代都打印 `symma`,这会导致输出多个结果。通常只需要在循环结束后打印一次最终结果。
- 注意 `max1` 和 `max2` 的初始化逻辑:如果数组前两个元素相等,你的初始化可能不够完善,但这不是主要问题。