冒泡排序:用户输入一组数,编写程序将该组数据进行从小到大的顺序进行排列。
举个例子:用户输入; 14 13 91 87 66 这一组数据,现在要将这组数据进行从小到大的程序进行排列。
我们编写程序的思路如下:
现将第一个数和第二个数进行比较,即14和13,13比14小,那么就将13和14进行位置的调换,13排在了第一个(13和14进行位置的调换)
然后将14和91进行比较(即第二个数和第三个数进行比较),14比91小,那么14的位置不动,91的位置也不动(14和91不进行位置的调换)
第三步将第三个数和第四个数进行比较,即91和87进行比较,91>87,所以91位置往后移一位,87往前移动一位(将91和87的位置进行调换)
第四步将第四个数和第五个数进行比较,即91和66进行比较,91>66,所以91的位置往后移动一位,66往前移动一位(将91和66的位置进行调换)
那么根据以上的叙述,我们发现经过了四次的比较,我们将14 13 91 87 66这5个数中的最大的那个数91移动到了最后。即对于五个数进行从大到小的排序,我们在第一次的时候就行了4循环,即5-1次。那么第二次的时候就是5-1-1次的循环比较了。
具体的程序代码如下:
#include <stdio.h>
#define X 10
int main()
{
int i, j;
int t, n;
t = 0;
int arr[X] = {0};
for(i = 0; i < X; i++)
{
scanf("%d",&arr[i]);
}
for(j = 0; j < X - 1; j++)
{
for(i = 0; i < X - j - 1 ;i++)
{
if(arr[i] < arr[i+1])
{
t = arr[i];
arr[i] = arr[i+1];
arr[i+1] = t;
}
}
}
for(n = 0; n < X; n++)
{
printf("%d",arr[n]);
}
return 0;
}
标签:arr,14,13,冒泡排序,C语言,66,91,新手,87
From: https://blog.csdn.net/2301_80125121/article/details/136698981