原题如下:
编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排列这些整数。在给定n个元素的数组后,election_sort函数必须做下列工作:
搜索数组找出最大的元素,然后把它移到数组的最后面;
递归的调用函数本身对前面的n-1个数组元素进行排序。
下面是我自己写的程序:(运行结果不对,求大神指导!!!)
#include
#define N 8
int selection_sort(int a[], int n){
int m, max;
m = n;
max = a[0];
for(n = 0; n < m; n++){
if(max <= a[n]){
max = a[n];
a[n] = a[m - 1];
}
}
a[n - 1] = max;
return a[n - 1];
n = m -1;
while(n > 0){
selection_sort(a, n -1);
n--;
}
}
int main(void){
int a[N], n;
n = N;
printf("录入数组a的各个元素:");
for(n = 0; n < N; n++)
scanf("%d", &a[n]);
for(n = 0; n < N; n++)
a[n] = selection_sort(a, N);
printf("按照从大到小的顺序输出数组a为:");
for(n = 0; n < N; n++)
printf("%d ", a[n]);
printf("\n");
return 0;
}