当前位置:网站首页>Problem B: 小度挑战赛
Problem B: 小度挑战赛
2022-04-22 06:23:00 【唐恩澄_hhhc】
Problem B: 小度挑战赛
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 2544 Solved: 835
Description
小度第一轮小胜人类高手王峰,后面还将陆续挑战人类。为了人类的尊严,名人堂按照需要按照能力值高低排序,以迎接小度的挑战。
Input
多组测试数据,每组先输入一个整数T,表示组数,每组先输入一个整数n (n <= 30),表示名人堂人数,然后是n行,每行输入名人堂里的人的姓名拼音(不超过10个字母)和一个整数,该整数代表名人堂里队员的能力值。
Output
对于每组测试数据,输出一行,按照能力值由高到低,输出姓名
Sample Input
1
3
Alice 12
Bob 11
Cate 15
Sample Output
Cate
Alice
Bob
#include <stdio.h>
#include <string>
typedef struct node{
char name[20];
int val;
}node;
int main()
{
int T;
scanf("%d",&T);
while (T--)
{
int n;
scanf("%d",&n);
int i;
node p[33];
for (i = 0;i < n;i++ )
{
scanf("%s%d",p[i].name,&(p[i].val));
//printf("%s %d\n",p[i].name,p[i].val);
//getchar();
}
for (i = 0;i < n-1;i++)
{
for (int j=0;j < n-1-i;j++)
{
if (p[j].val < p[j+1].val)
{
node t = p[j];
p[j] = p[j+1];
p[j+1] = t;
}
}
}
for (i = 0;i < n;i++)
{
printf("%s\n",p[i].name);
}
}
return 0;
}
有个疑问,就是为什么定义成
char* name;
scanf("%s",p.name);是无法使用的
而定义成
char[20] name;
scanf("%s",p.name);
就可以用了呢?
找到原因了,参考我这篇文章
https://blog.csdn.net/xiaojin_hhhc/article/details/122409210
版权声明
本文为[唐恩澄_hhhc]所创,转载请带上原文链接,感谢
https://blog.csdn.net/xiaojin_hhhc/article/details/122408117
边栏推荐
猜你喜欢
随机推荐
Crawler learning 2 - requests module - get request mode
unity面试题
接口的应用与定义
FFmpeg命令(六)、 視頻提取無音視頻
关于SM2加密验签的操作
一次敏感词检测开发记录
ES6笔记
微信收付通版本对接
信息系统项目管理师---第四章项目整体管理历年考试题
写第一个代码需要注意的
线程池使用
【方法重载】
【成员变量和局部变量】
A thrilling redis vulnerability to the principle of server target changing
In depth understanding of MySQL (5): talk about MySQL lock algorithm in detail
if语句格式流程
【静态方法与非静态方法】
7-1金融介绍
小程序 - 超过两件折叠展开逻辑
Ffmpeg command (VII), combining audio and video into video









