1047 冒泡排序
时间限制:1000MS 代码长度限制:10KB
提交次数:8340 通过次数:3379
题型: 填空题 语言: GCC
Description
由键盘输入10个数,用“冒泡法”对10个数从小到大排序,并按格式要求输出。代码如下,请填充完整。
#include "stdio.h"
main()
{ int a[10], i, j, t;
for(i=0;i<10;i++)
scanf("%d",_______________________) ;
for(_______________________)
{ for(j=0;j<_______________________;j++)
if (_______________________)
{_______________________}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
输入样例
70 5 14 20 19 2 99 67 13 66
输出样例
2 5 13 14 19 20 66 67 70 99
/*冒泡排序:从第一个数开始,前面一个数和后面的数比较,如果前面的数大于后面的数,则交换位置。特点是如果需要排列十个数,第一次需要比较九次,第二次只需比较八次...以此类推,因为后面的数渐渐地已经排列好了,不需要再次比较了*/
#include "stdio.h"
main()
{
int a[10], i, j, t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)//重复九次从头开始比较的循环
{
for(j=0;j<9-i;j++)//比较的次数会随着i的增大而减少
{
if(a[j]>a[j+1])//前一个数和后面一个数比较
{
t=a[j];//交换数值
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);//注意这里d后面有一个空格,不然输出的时候数据会挤到一堆
}