题意:
给一些字符串,在每个字符串后面跟着一个数,每个数都不相同,根据数的大小将字符串进行排序。
输入:
3
3
red 1
green 2
yellow 3
1
blue 83
2
red 2
white 1
输出:
yellow green red
blue
red white
分析:
结构体,能保留其中一个元素的ID,排序的时候直接对结构体进行排序,在排序函数中就设定好对数字的排序。
代码:
#include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
struct node
{
int a;
char s[15];
}nn[15];
int cmp(node x,node y)
{
return x.a>y.a;
}
int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s %d",nn[i].s,&nn[i].a);
}
sort(nn,nn+n,cmp);
for(int i=0;i<n;i++)
i==0?printf("%s",nn[i].s):printf(" %s",nn[i].s);
printf("\n");
}
return 0;
}