其实很简单,就是一个一个进行对比如果a<b/a>b就把两个变量进行交换,使得最大/最小的排在前面。
2 4 3 5 1 五个数
2<4 交换成为 42351
2<3 成为 43251
2<5 成为 43521
2>1 不交换 43521
然后最小的1就一定会在最后
然后比较前4个数,4>3,3<5(交换),3>2;
成为45321,
前3个数4<5(交换),4>3
就成为了54321
这是一个巧合的例子,程序应该还要比较前两个数
5>4
最后成为54321。
以下是样例程序。
#include<stdio.h>
int main()
{
int a[5]={2,4,3,5,1};
int i,j,t; //i,j是计数器,t用作交换
for(i=0;i<5;i++)
{
for(j=0;j<5-i-1;j++)
{
if(a[j]<a[j+1]) //如果后面的数字大于前面的数字
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t; //就把两个数交换
}
}
}
printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);
return 0; //程序正常结束
}
你懂了么。
2019-07-17 22:49:46