#include<stdio.h>
#define G 6
int main()
{
int a[G],i,j,temp; //C很有趣,数组放在变量后面定义直接不能运行
for(i=0;i<G;i++)
scanf("%d",&a[i]);
for(i=0;i<G;i++)
for(j=0;j<G-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
for(i=0;i<G;i++)
printf("%d ",a[i]);
return 0;
}
个人觉得冒泡排序和选择排序有点混,冒泡排序是相邻元素之间的比较,比较的内容是获得最大(小)值,每一轮比较都是取最大值放在最后一个位置上,下一轮的循环从头开始但是到上一轮排完序之前结束,故第二个for中要设置条件是j<G-i,这样排好序的就不用动了。可以理解为把数组分成两部分,一部分是排好序的越来越长,一部分是未排序的越来越短。