0
已采纳
赵航宇
资深守护
资深守护
Hi~~~(为啥开头总是这样,我也不知道)
咳咳,朕要开始讲了!!!
首先,这题要定义!!!
需要定义一个名字,和一个得分,(注意:string类型的)(你应该知道怎样定义结构体吧!!!不说了)
这里还要定义一个n,一个数组,一个cmp函数(举个例子:int cmp(const game&a,const game&b))//你学过结构体,就应该能看懂;
然后你可以在cmp函数里写条件,
思路如下:
a.得分的长度>b.得分的长度,return 1
否则
如果a.得分的长度<b.得分的长度,return 0
否则
如果a.得分<b.得分,return 1
否则
如果a.得分>b.得分,return 0
否则
如果a.名字>b.名字,return 0
否则
如果a.名字<b.名字,return 1
return 1
(以上为cmp函数的思路)
最后
我们先输入n
然后来个循环输入名字和得分(循环会吧!!!不说了)
然后需要一个sort排序(like this:sort(a+0,a+n,cmp)//纯属举例子哦!!!
再来一个循环
输出名字(注意换行哦!!!)
最后,祝你AC!!!
望采纳!!!
1
1
江齐悦
高级光能
高级光能
首先,用记录型数组存储输入内容,第一个字符串表示游戏者姓名,第二个表示得分。
再写个记录型快排函数(可调用STL库里的sort函数,如用,需加上compare,例:sort(a+1,a+n+1,compare);)。
在compare判断中,首先判断两个字符串(得分)的长度,长度长者优先;在这之后直接用>和<判断字符串,大者优先(如果两者得分完全相同,姓名字典序小者优先)。
最后按顺序输出所有游戏者姓名就可以了。
0
0