1.选择结构(优 此方法无数值大小的限制)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,t,n;
scanf("%d",&n);
int a[n+1]; //定义n个小房子第一个空着
for (i=1;i<=n;i++)
scanf("%d",&a[i]); //a1-an五个小房子的数值填满
for (i=1;i<=n-1;i++)
{ //总共有n-1轮比较 第一轮比n-1次 第二轮n-2次 ……第n-1轮1次
for(j=i+1;j<=n;j++) //即a1先和另外n-1 a2再和另外n-2 依次
{ //每轮中a[i]和a[i+1] a[i+2] …… a[n]比
if (a[i]<a[j])
{
t=a[i];a[i]=a[j];a[j]=t; //降序
}
}
}
for(i=1;i<=n;i++)
printf("%d ",a[i]); //最后输出交换后的每个小房子的数值
return 0;
}
2.顺序结构(此方法有数值大小限定)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[1001],i,num,j,n; //注意是定义了a0 a1 a1 …… a1000 只能比较0~999的数
scanf("%d\n",&n);
for (i=0;i<=1000;i++)
a[i]=0; //每个房间的初始值设为0
for (i=1;i<=n;i++)
{
scanf("%d",&num);
a[num]++; //每输入一个房间号就把该房间的数值改+1
}
for (i=0;i<=1000;i++) //按照增序输出
{
for(j=1;j<=a[i];j++) //判断每个小房子输出几次
printf("%d ",i);
}
return 0;
}