姓名和年龄对排序C语言

输入两行,分别是5个姓名和五个年龄。 对年龄和名字排序(按照年龄递增排序,当年龄相等时按姓名递增排序),并且输出(name,age)对。 当年龄相等时按姓名递增排序。

#include<iostream>
#include<algorithm>
using namespace std;

typedef struct student{
	int age;
	char name[20];
}Stu;

bool cmp(Stu a, Stu b){
	if(a.age == b.age)
		return a.name < b.name;
	return a.age < b.age;
}

int main(){
	Stu stu[5];
	for(int i = 0; i < 5; i++)
		cin >> stu[i].name;
	for(int i = 0; i < 5; i++)
		cin >> stu[i].age;
	sort(stu, stu+5, cmp);
	for(int i = 0; i < 5; i++)
		cout << "(" << stu[i].name << "," << stu[i].age << ")" << endl;
	return 0;
}

 

你的难点是啥呢?

题主还是自己多尝试一下再来问

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632