在线编译器 C

#include <stdio.h> int main() { void sort_array(int size, int a[]) { for (int i = 0; i < size; i++) { scanf("%d", &a[i]); } } void sort_array(int size, int a[]) { for (int i = 0; i < size; i++) { int mini = i; for (int j = i + 1; j < size; j++) { if (a[mini] > a[j]) { mini = j } } if (mini != i) { int tmp = a[i]; a[i] = a[mini]; a[mini] = tmp; } } } printf("%d", a[]); return 0; }
这段代码试图定义一个排序函数并在主函数中使用,但存在多个问题。

首先,你在 `main` 函数内部定义了 `sort_array` 函数,这在C语言中是不允许的。函数定义必须放在所有函数之外。

其次,你在 `main` 函数中使用了 `printf("%d", a[])`,但 `a` 数组并没有在 `main` 中声明,而且 `a[]` 这种写法不是正确的数组打印方式。

- 你需要将 `sort_array` 的定义移到 `main` 函数外面,然后在 `main` 中声明一个数组并调用它。
- 在 `mini = j` 这一行末尾缺少分号,这是一个语法错误。