3/7 001:成绩排序

题目很基础,可以自己写排序,没有要求。
但是在成绩相同时,要求以名字字母排序;
使用char 时可以使用《cstring》 里面的比较函数
使用string时,则可以直接比较大小
下面是我写的代码。

#include <iostream>
#include <string>
using namespace std;
struct student
{
	string  name;
	int score;
};
int main()
{
	int num;//个数
	cin>>num;
	student mystudent[num];
	for(int i=0;i<num;i++)
	{
		cin>>mystudent[i].name>>mystudent[i].score;
	} 
	
	for(int i=0;i<num;i++)
	{
		int max = i;
		for(int j=i;j<num;j++)
		{
			
			if(mystudent[j].score>mystudent[max].score)
			{	
				max = j;
			}
			if((mystudent[j].score==mystudent[max].score&&mystudent[j].name<mystudent[max].name))
			{
					max = j;
			}
		}
		student out = mystudent[i];
		mystudent[i] = mystudent[max];
		mystudent[max] = out;			
	}
		
	for(int i=0;i<num;i++)
	{
		cout<<mystudent[i].name<<" "<<mystudent[i].score<<endl;
	} 
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值