Online Compiler C

#include <stdio.h> void swap_min_max(int *a, int n) { if (n <= 0) return; int min = 0; int max= 0; int x; for (int i = 1; i < n; ++i) { if (a[i] <a[min]) {min=i;} } for (int i = 1; i < n; ++i) { if (a[i] >a[max]) {max=i;} } int temp = a[min]; a[min] = a[max]; a[max] = temp; } } int main() { printf("s"); return 0; }
这段代码定义了一个函数 `swap_min_max`,它接收一个整型数组和数组长度,找到数组中的最小值和最大值,然后交换它们的位置。主函数 `main` 只是打印了一个字符,没有实际测试这个交换函数。

- 你的 `for` 循环从 `i = 1` 开始,这跳过了数组的第一个元素(索引0)。如果最小值或最大值恰好位于索引0,它不会被正确识别。考虑循环应该从哪个索引开始才能覆盖所有元素。
- 函数末尾多了一个多余的右花括号 `}`,这会导致编译错误。检查代码中花括号的配对,确保每个左花括号都有对应的右花括号。