你的代码存在几个问题:
1. 在主函数中,输入数组元素时,应该使用&a[i]而不是&a。
2. 在主函数中,您调用了fun()函数,但fun()函数并没有返回任何值,因此您需要将fun()函数的返回值类型改为void。
3. 在fun()函数中,您使用了选择排序算法的实现,但是您的fun()函数没有递归调用自身,所以它不是一个递归函数。根据题目要求,您需要实现一个递归函数。
尝试一下如下代码:#include <stdio.h>
void sort(int a[], int low, int high);
int main() {
int a[10], i;
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
sort(a, 0, 10);
for (i = 0; i < 10; i++) {
printf("%2d", a[i]);
}
return 0;
}
void sort(int a[], int low, int high) {
if (low >= high - 1) {
return;
}
int i, j, min_idx, temp;
min_idx = low;
for (i = low + 1; i < high; i++) {
if (a[i] < a[min_idx]) {
min_idx = i;
}
}
temp = a[low];
a[low] = a[min_idx];
a[min_idx] = temp;
sort(a, low + 1, high);
}
|