#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define n 8
int main()
{
int i,j,t;
int a[n];
srand(time(NULL));
for(i=0;i<n;i++) //随机生成n个成绩并输出
{
a[i]=rand()%100+1;
printf("第%d的成绩为: %d\n",i+1,a[i]);
}
for (j=1;j<=n-1;j++) //j的意义为已排序元素个数
{
while(j>=1&&a[j]<=a[j-1])//判断第j+1个元素是否大于前一个元素进而决定是否互换,即将较小数插入较大数之前(注意元素顺序数与数组下标的关系)
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
j--;//互换以后重复上述循环,比较第j个元素与第j-1个元素的大小关系
}
}
printf("======================\n成绩由小到大依次为: \n");
for(i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
return 0;
}
根据自己思路写的冒泡排序,感觉容易理解多了,希望对刚开始c学的同学有帮助~