![](zzz/editor/img/code.gif)
程序代码:
/*******************************************************************************
N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠
的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“
red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量
用整数表示。
关于输入
输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重
量;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。
关于输出
N行,按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色,每行一个颜色。
例子输入
3
30 red
50 blue
40 green
例子输出
blue
green
red
*******************************************************************************/
#include<stdio.h>
#define N 100
struct ST
{
int weight;
char color[10];
}mouse[N],sw;
int main(void)
{
int i,j,n,ch;
do
{
system("cls");
printf("input n:\n");
scanf("%d",&n);
}while(n>N); /* 限制n值小于100 */
for(i=0;i<n;i++) /* 输入数据 */
{
printf("\nplease input NO.%d weight and color :\n",i+1);
scanf("%d %s",&mouse[i].weight,&mouse[i].color);
}
for(i=0;i<n;i++) /* 选择排序 */
{
ch=i;
for(j=i+1;j<n;j++)
if(mouse[i].weight>mouse[j].weight)
ch=j;
if(ch!=i)
{
sw=mouse[i];
mouse[i]=mouse[ch];
mouse[ch]=sw;
}
}
for(i=0;i<n;i++) /* 输出 */
printf("%2d %s\n",mouse[i].weight,mouse[i].color);
getch();
}