在线编译器 C

#include <stdio.h> void scanf_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; } } } int main() { for (int i = 0; i < size; i++) { printf("%d", a[i]); } return 0; }
这段代码试图实现数组的输入、排序和输出,但存在几个关键问题。

首先,`main`函数中使用了未定义的变量`size`和`a`,这会导致编译错误。`main`函数里没有声明这些变量,也没有调用你定义的`scanf_array`和`sort_array`函数。

其次,`main`函数中直接使用`size`和`a`,但这两个变量在`main`中并不存在。你需要先在`main`中声明一个数组和一个表示大小的变量,然后调用你写的函数来完成输入和排序,最后再输出。

- 在`main`函数中,你需要先声明一个数组(例如`int a[100]`)和一个整数变量(例如`int size`),然后从用户那里读取数组的大小,再调用`scanf_array`和`sort_array`函数。
- 输出数组的循环应该放在`main`函数中,并且要使用正确的数组名和大小变量。