思路
外循环和之前一样,每相邻两个数都比较,最小的就沉在最右边,内循环的范围一次一次减少。
代码,因为一个一个沉下去的就是排好的,相邻元素顺序错误我们就交换。
过程
代码
#include <stdio.h>
int main()
{
int a[100], i, n, j, temp, max, k; //n为需要排序的数的数量
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; 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;
}
}
for (i = 0; i < n; i++)
printf("%d ", a[i]);
}