编写程序,要求用户输入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排序这些整数。在给定n个元素的数组后,sort函数必须做以下工作: a)搜索数组找到最大的元素,然后把该数移到数组的最后。 b)递归地调用函数本身来对前n-1个数组元素进行排序。 函数接口定义: 在这里描述函数接口。例如: void selection_sort(int a[], int n); a:传入的数组名字 n:数组的元素个数
时间: 2023-06-04 21:06:18 浏览: 135
答案:好的,我能够帮助您编写这个程序。以下是selection_sort函数的接口定义:
void selection_sort(int a[], int n);
其中,a是传入的整数数组名字,n是数组中元素的个数。
下面是实现该函数的代码:
void selection_sort(int a[], int n){
int i, j, max_idx;
for (i = 0; i < n-1; i++){
max_idx = i;
for (j = i+1; j < n; j++){
if (a[j] > a[max_idx]){
max_idx = j;
}
}
int temp = a[max_idx];
a[max_idx] = a[i];
a[i] = temp;
}
}
调用该函数的方式如下所示:
int main(){
int arr[10];
int i;
printf("请输入10个整数:");
for(i = 0; i < 10; i++){
scanf("%d", &arr[i]);
}
selection_sort(arr, 10);
printf("排序后的数组:");
for (i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
希望这个程序对您有所帮助!
阅读全文