用c语言完成程序,设计实现递归函数void sort(int a[],int n),其功能为使用“起泡法”对a数组存储的n(n<=20)个数按从大到小排序,排列后任然存储a数组中。 函数接口定义: void sort(int a[],int n);/*功能为使用“起泡法”对a数组存储的n(n<=20)个数按从大到小排序,排列后任然存储a数组中*/ 裁判测试程序样例: #include <stdio.h> #define N 20 /* 请在这里填写答案 */ int main(){ int a[N],i,n; scanf("%d",&n); if(n>20) printf("error data"); else{ for(i=0; i<n; i++) scanf("%d",&a[i]); sort(a,n); for(i=0; i<n; i++) printf("%5d",a[i]); printf("\n"); } return 0; } 输入格式: 请在第一行中输入整数n的值,表示数据的个数。 在第二行中输入n个无序整数,数据中间以空格为间隔。 输出格式: 对每一组输入的n个无序整数,输出按照从小到大顺序的排序结果,其中每个数显示格式为:占5列,右对齐。
时间: 2023-11-22 17:53:16 浏览: 206
代码如下:
```c
#include <stdio.h>
void sort(int a[], int n);
int main()
{
int a[20], i, n;
scanf("%d", &n);
if (n > 20)
printf("error data");
else
{
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, n);
for (i = 0; i < n; i++)
printf("%5d", a[i]);
printf("\n");
}
return 0;
}
void sort(int a[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] < a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
```
使用“起泡法”对数组进行排序,我们需要使用两个嵌套的循环,其中外层循环控制排序的轮数,内层循环控制每轮排序的次数。具体实现过程为:比较相邻的两个元素,如果前一个元素比后一个元素小,则交换它们的位置。这样,每一轮结束后,最大的元素就会被移动到数组的末尾,然后再进行下一轮排序。最后,整个数组就按照从大到小的顺序排好了序。
注意,在sort函数中,我们使用了传入数组的指针和数组的长度来完成对数组的排序。同时,我们也可以将sort函数定义为返回值为void*类型的指针函数,这样就可以不使用全局变量来实现函数的递归调用。
阅读全文
相关推荐
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)