//桶排序,记录分数,0到10分,我们输入5个成绩,对这个成绩进行排序
#include<stdio.h>
#include<stdlib.h>
b
int main(void)
{
int a[11],i,j,t;//我们用下标来记录分数,这里最多10分,所以是11
for( i=0;i<=10;i++)
a[i]=0;//其实这里没有必要这样写 a[11]={0};其他的也默认初始化为0
for( i=0;i<5;i++)
{
scanf("%d",&t);
a[t]++;//因为我们输入的是成绩,下标表示的就是成绩,如果出现一次就应该加1
}
for(i=0;i<=10;i++)//这里就是0到10的成绩
{
for( j=1;j<=a[i];j++)//a[j]表示的是出现的次数,下标表示的是成绩
printf("%d ",i);
}
system("pause");
return 0;
1
2
3
4
}
//总结:我们能够排序的原理是因为 for(i=0;i<=10;i++),所以能够从小到大排序
//如果要从小到大排序,for(i=10;i>=0;i–),我们能够打印处重复的数的原因是记录了
//出现相同元素的次数
//计数 for( i=0;i<5;i++)
{
scanf("%d",&t);
a[t]++;//因为我们输入的是成绩,下标表示的就是成绩,如果出现一次就应该加1
}
觉得可以的兄弟可以关注我一波哦