在线编译器 C

#include <stdio.h> void change_max_min(int size, int a[]) { int i; int max=0; int min=0; for (i=0;i<size;i++) { if(a[i]>a[max]) { max=i} if(a[i]<a[min]) { min=i} int temp=a[max]; a[max]=a[min]; a[min]=temp; }
这段代码的目的是在数组中交换最大值和最小值的位置。代码中有一个语法错误和逻辑问题。

- 第10行和第13行的花括号 `}` 前面缺少分号 `;`,这是语法错误。
- 交换最大最小值的代码被放在了循环内部,导致每次循环都会进行交换,而不是在找到最终的最大最小值后才交换。交换操作应该放在循环结束之后。