用C语言实现10 个数字从小到大排序
时间: 2023-03-14 09:10:17 浏览: 24
答:可以使用冒泡排序算法:
1. 设置一个标志性变量pos,用于记录每趟排序中最后一次进行交换的位置。
2. 第一趟排序,从第一个数据开始,把相邻两个数据进行比较,如果发现前面的数据比后面的数据大,就把这两个数据交换位置。
3. 第二趟排序,从第一个数据开始,把相邻两个数据进行比较,如果发现前面的数据比后面的数据大,就把这两个数据交换位置。同时记录下本趟排序中最后发生数据交换的位置,作为下次比较的起点。
4. 重复第3步,直到pos变为0。
5. 重复2,3,4步,直至全部排序完成。
相关问题
帮我写串代码,用C语言实现10 个数字从小到大排序。
#include <stdio.h>
int main()
{
int array[10], n, c, d, swap;
printf("输入 10 个数字:");
for (c = 0; c < 10; c++)
scanf("%d", &array[c]);
for (c = 0; c < (10 - 1); c++)
{
for (d = 0; d < 10 - c - 1; d++)
{
if (array[d] > array[d + 1])
{
swap = array[d];
array[d] = array[d + 1];
array[d + 1] = swap;
}
}
}
printf("排序后的数字:");
for (c = 0; c < 10; c++)
printf("%d ", array[c]);
return 0;
}
C语言使用排序法实现10个数从小到大排序
好的,我可以为您提供一个简单的C语言实现10个数从小到大排序的例子代码:
```
#include <stdio.h>
int main()
{
int i, j, temp, array[10];
printf("请输入10个数字:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &array[i]);
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
printf("排好序的数字:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", array[i]);
}
return 0;
}
```
其中,使用了冒泡排序法来实现从小到大排序。具体的实现思路是:每一轮外层循环确定一个最大值,并将其放到数组的最后面,内层循环逐个比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置。最终得到排好序的数组。
阅读全文