对于函数bubbleSorto,可以通过简单的修改以降序进行排序。在每种情况下,识别所需的更改,然后重新连接函数以接受一个标志,指示排序应按递增或递减顺序。修改例程以正确接收和使用此标志参数。
可以增加1个参数,来控制升序还是降序,代码如下:
#include <stdio.h>
//flag = 1时表示升序,0则表示降序
void bubbleSorto(int a[], int n, int flag)
{
int i, j, t;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if ((flag == 1 && a[j] > a[j + 1]) || (flag == 0 && a[j] < a[j + 1]))
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}
int main()
{
int a[10], i;
printf("请输入10个数:");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
printf("升序排列:\n");
bubbleSorto(a, 10, 1);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n降序排列:\n");
bubbleSorto(a, 10, 0);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!