题目要求
编写程序,使a[5]={2,4,1,-5,9},中的元素从小到大排序
思路分析
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
简而言之
第一轮
- 2,4,1,-5,9 //2和4比较,2比4小,不做交换
- 1,4,2,-5,9 //2和1比较,2 比1大,交换
- 1,4,-5,2,9 //2和 -5比较,2比 -5大,交换
- 1,4,-5,2,9 //2和9比较,2比9小,不做交换
第二轮 //接着第一轮最后的结果进行
- 1,-5,4,2,9 //4和 -5比较,4比 -5 大,交换
- 1,-5,2,4,9 //4和2比较,4比2大,交换
- 1,-5,2,4,9 //4和9比较,4比9小,不交换
第三轮 //接着第二轮最后的结果进行
- -5,1,2,4,9 //1和-5比较,1比-5大,交换
- -5,1,2,4,9 //1和2比较,1比2小,不交换
第四轮 //接着第三轮最后的结果进行
- -5,1,2,4,9 //1和-5比较,1比-5大,交换
然后输出结果
撸写代码
#include"stdio.h"
#define N 5 //宏定义
int main ()
{ int a[N];
int i,j,t;
printf("请输入%d个元素:\n",N);
for(i<0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=N-1;i++)
{ for(j=0;j<N-i;j++)
{ if(a[j]>a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("这些元素从小到大排列是 :\n");
for(i=0;i<N;i++)
{
printf("%d\t",a[i]);
}
}
测试结果