//对10个数进行冒泡法排序
#include <stdio.h>
# define N 10
int main()
{
int a[N],i,j,t;
printf("please print %d numbers:",N);
for (int i = 0; i < N; ++i)//开始向a[]中输入数值
scanf("%d",&a[i]);
for (int i = 0; i < N-1; ++i)//总共有十个数值,进行9次冒泡
for (int j = 0; j < N-1-i; ++j)//一次冒泡中,逐个对相邻对象进行对比
if(a[j]>a[j+1])//交换 //N-1-i,每次将一个最大值放到后面,对比次数就可以少一次
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
printf("the numbers is:");
for (int i = 0; i < N; ++i)
printf("%d ",a[i]);//输出a[]
return 0;
}
如果想自定义排序数的数量,将中间的代码改为如下这样
int n,i,j,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}