生日

P1-104

欢迎进入@shuai:生日;

题目描述
sxq同学想调查学校OI组每个同学的生日,并按照从大到小的顺序排序。但sxq最近作业很多,没有时间,所以请你帮她排序。

输入输出格式
输入格式:
有2行,

第1行为OI组总人数nn;

第2行至第n+1行分别是每人的姓名s、出生年y、月m、日d。

输出格式:
有n行,

即n个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)

输入输出样例
输入样例#1:
3
Yangchu 1992 4 23
Songxiqun 1999 10 13
Luowen 1991 8 1
输出样例#1:
Luowen
Yangchu
Songxiqun

1<n<100
length(s)<20
源代码来了,,,,

#include<stdio.h>
struct people{
	int number;
	int year,month,day;
	char name[20];
}a[110],t;
main()
{
	int n,i,j;
	scanf("%d",&n);;
	for(i=0;i<n;i++){
		scanf("%s %d %d %d",&a[i].name,&a[i].year,&a[i].month,&a[i].day);
	}
	for(i=0;i<n-1;i++){
		for(j=i+1;j<n;j++){
			if(a[i].year>a[j].year||(a[i].year==a[j].year&&a[i].month>a[j].month)||(a[i].year==a[j].year&&a[i].month==a[j].month&&a[i].day>a[j].day)||(a[i].year==a[j].year&&a[i].month==a[j].month&&a[i].day==a[j].day&&a[i].number>a[j].number)){
					t=a[i];
					a[i]=a[j];
					a[j]=t;	
			}
		}
	}
	for(i=0;i<=n;i++){
		printf("%s\n",a[i].name);
	}
}

代码解释:

  1. ~~周末也要加油鸭、、,一道简单的结构体排序来了,
  2. 思路:排序,排序,还是排序……
  3. 本蒟蒻表示这道题挺适合刚学结构体的同学的,纯c语言呦
  4. 先用结构体存下每一个人的姓名,出生年,月,日与每个人输入的编号,,优先度为:年 -> 月 -> 日 -> 编号,注意年月日都相同时编号从大到小输出,最后再来一个选排,悄悄告诉你可以AC的,楼主亲测

源代码图片及运行图片如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
QAQ
推荐相关题目:
平台:https://www.luogu.org/problemnew/show/P1105
学生分组:https://www.luogu.org/problemnew/show/P1109
笨小猴:https://www.luogu.org/problemnew/show/P1125
发现错误,疑惑不解,联系作者:1939096278@qq.com
欢迎联系呦 -------- QAQ ---------;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值