首页 > 其他分享 >浙江理工大学入队200题——16B

浙江理工大学入队200题——16B

时间:2022-10-30 09:55:48浏览次数:49  
标签:200 student int 1998 16B 1999 入队 female male

问题 B: 零基础学C/C++171——年龄排序

题目描述

输入n个学生的信息,包括姓名、性别、出生年月。要求按年龄从小到大依次输出这些学生的信息。数据保证没有学生同年同月出生。

输入

第一行输入一个整数n表示学生人数(n<=100)
接下来n行,每一行依次输入学生的姓名、性别、出生年份、出生年月

输出

按年龄从小到大,一行输出一个学生的原始信息

样例输入

点击查看代码
5
John male 1999 12
David female 1999 8
Jason male 1998 11
Jack female 1998 8
Kitty female 2000 7

样例输出

点击查看代码
Kitty female 2000 7
John male 1999 12
David female 1999 8
Jason male 1998 11
Jack female 1998 8

题解

本题考查结构体,对于没有同年同月的两个人,我们是怎么比较的呢?
当然是先比较年,如果相同才比较月;也可以将月换算成(float)年。按照这个方式我们可以自定义sort一下,然后按顺序输出。

代码(AC)

点击查看代码
#include <iostream> 
#include <string>
#include <algorithm>
using namespace std;
struct student
	{
		char name[50];
		char sex[10];
		int year;
		int month;
		float s;
	};
bool cmp(student a,student b)
	{
		return a.s>b.s;
	}
int main ()
{
	int n;
	scanf("%d",&n);
	struct student stu[n];
	for(int i=0;i<n;i++)
	{
		scanf("%s%s%d%d",&stu[i].name,&stu[i].sex,&stu[i].year,&stu[i].month);
		stu[i].s=(float)stu[i].year+(float)stu[i].month/12.0;
	}
	sort(stu,stu+n,cmp);
	for(int i=0;i<n;i++)
	{
		printf("%s %s %d %d\n",stu[i].name,stu[i].sex,stu[i].year,stu[i].month);
	}
	
	return 0;
}

标签:200,student,int,1998,16B,1999,入队,female,male
From: https://www.cnblogs.com/codeshany/p/zstu_200_16B.html

相关文章

  • 浙江理工大学入队200题——15E
    问题E:零基础学C/C++165——输出素数题目描述编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。输入多组测试数据,每组输入2个整数n和m,其中1<......
  • 浙江理工大学入队200题——15G
    问题G:零基础学C/C++167——判断是否完数题目描述编写一个判断一个数是否是完数的函数,用main()函数调用。并求n—m以内的完数有哪些?一个正整数的因子是所有可以整除它......
  • 浙江理工大学入队200题——14N
    问题N:零基础学C/C++159——最长字符串题目描述给定一系列不同长度的字符串,找出最长的一串后输出输入输入为多组测试数据。第一行为一个正整数n(n<=10),表示字符串的......
  • 浙江理工大学入队200题——14L
    问题L:零基础学C/C++157——保留尾部*题目描述多组读入,每组输入一行字符串,规定输入的字符串中只包含字母和号,除了尾部的号之外,请将字符串中其他*号全部删除。输入输......
  • 浙江理工大学入队200题——14M
    问题M:零基础学C/C++158——删除中间的*题目描述规定输入的字符串中只包含字母和号,除了字符串前导和尾部的号之外,将串中其他*号全部删除输入输入为多组测试数据。......
  • 浙江理工大学入队200题——14J
    问题J:零基础学C/C++155——句子比较大小题目描述从键盘输入几个句子(每个句子最多31个字符),对这几个句子按从小到大的顺序输出。输入有多组测试数据。每组测试数据第......
  • 浙江理工大学入队200题——14K
    问题K:零基础学C/C++156——删除前导*题目描述规定输入的字符串中只包含字母和号,请将字符串中的前导号全部删除,中间和尾部的*号不删除。输入输入为多组测试数据。输......
  • Windows Server 2008+IIS+php+MySQL环境搭建
    Win2008+IIS+php+MySQL环境搭建一、Windows环境操作系统:WindowsServer2008R2IIS版本:IIS7.5PHP版本:php5.6.9MySQL版本:MySQL5.7.40二、部署IIS1、打......
  • 浙江理工大学入队200题——14I
    问题I:零基础学C/C++154——加密程序2题目描述有一行电文,请将电文中大写字母按A→Z,B→Y,C→X,D→W,……,X→C,Y→B,Z→A,的规律译成密文,其他字符保持不变。输入多组测试......
  • 浙江理工大学入队200题——14D
    问题D:零基础学C/C++149——重组字符串题目描述输入一个以回车结束的字符串,将字符串中的字符按ASCII码从小到大顺序重组后输出。输入输入为多组测试数据。输入一个......