1598 - 小白鼠排队
时间限制 : 1 秒
内存限制 : 32 MB
N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
<br />
题目输入
多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
注意:白鼠的重量各不相同。
<br />
题目输出
每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
<br />
输入/输出样例
输入格式
1 79 omi 9 46 lcg 92 cru 37 ceq 54 vhr 17 wus 27 tnv 13 kyr 95 wld 34 qox
输出格式
omi wld cru vhr lcg ceq qox tnv wus kyr
C语言解答
#include <stdio.h> #include <stdlib.h> struct mouse { int weight; char color[5]; }; int cmp(const void* pa,const void* pb) { int temp=((struct mouse*)pa)->weight-((struct mouse*)pb)->weight; return -temp; } int main () { int n; struct mouse m[100]; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d%s",&m[i].weight,m[i].color); qsort(m,n,sizeof(struct mouse),cmp); for(int i=0;i<n;i++) printf("%s\n",m[i].color); } }
C++解答
#include<iostream> #include<string> using namespace std; struct mouse_info //小白鼠信息结构体 { int weight; string colour; }; int main() { int i,j,n; mouse_info mouse[100],temp; //temp用于排序时的临时变量 while(cin>>n) { for(i=0;i<n;i++) //输入小白鼠的信息 { cin>>mouse[i].weight; cin>>mouse[i].colour; } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) //一轮排序后,重量最大的排在前面 { if(mouse[i].weight<mouse[j].weight) { temp.weight=mouse[i].weight; temp.colour=mouse[i].colour; mouse[i].weight=mouse[j].weight; mouse[i].colour=mouse[j].colour; mouse[j].weight=temp.weight; mouse[j].colour=temp.colour; } } } for(i=0;i<n;i++) { cout<<mouse[i].colour<<endl; } } return 0; }
Java解答
import java.util.Arrays; import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { while(s.hasNext()){ int n = s.nextInt() ; Mouse m[] = new Mouse[n] ; for (int j = 0; j < m.length; j++) { int weight = s.nextInt() ; String name = s.next() ; m[j] = new Mouse(weight, name) ; } Arrays.sort(m) ; for (int i = m.length-1; i >=0; i--) { System.out.println(m[i].name); } } } } class Mouse implements Comparable { int weight ; String name ; public Mouse(int weight, String name) { this.weight = weight; this.name = name; } @Override public int compareTo(Object o) { Mouse m = (Mouse)o ; if(this.weight>m.weight){ return 1 ; }else if(this.weight==m.weight){ return 0 ; }else return -1; } }