在线编译器 C

#include <stdio.h> int main() { int a[10]; int m,n; for(int d=0;d<10;d++){scanf("%d",&a[d]);} m=a[0]; n=a[0]; for(int d=1;d<10;d++){if (a[d]>m){m=a[d]}} for(int e=1;e<10;e++){if (a[e]>n && a[e]!=m){n=a[e]}} int c=m=n; printf("%d",c); return 0; }
这段代码试图找出数组中的最大值和第二大值,但存在语法错误和逻辑问题。

- 第8行和第9行的for循环语句缺少分号,导致编译错误。每个for循环体结束后需要加分号。
- 第11行 `int c=m=n;` 的写法不正确,这会将n的值赋给m,再将m的值赋给c,而不是计算m和n的某种关系。你可能是想计算m和n的差值或其他运算,但这里赋值顺序会覆盖变量值。