当前位置: 首页 > news >正文

C语言练习题--洛谷P生日*****(学会了新的思路)

题目描述

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

输入格式

输入共有 n+1 行,

第 1 行为 OI 组总人数 n;

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

输出格式

输出共有 n 行,

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

输入输出样例

输入 #1复制

3
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luowen 1991 8 1

输出 #1复制

Luowen
Yangchu
Qiujingya

说明/提示

数据保证,1<n<100,1≤∣s∣<20。保证年月日实际存在,且年份 ∈[1960,2020]。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct stu
{
	int num;
	int date;
	char name[25];
};
int compar(const void *p1,const void *p2)
{
	return ((struct stu*)p1)->date-((struct stu*)p2)->date;
}
int main()
{
	int n,i,y,m,d;
	struct stu str[115];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d%d%d",str[i].name,&y,&m,&d);
		str[i].num=i;
		str[i].date=y*10000+m*100+d;//把每个人的年月日组成一个数字,数字越小,代表年龄越大,或许前面的排序题也可以用这种组合的思路,可以省去很多if哈哈哈
	}
	qsort(str,n,sizeof(str[0]),compar);
	for(i=1;i<n;i++)
	{
		if(str[i].date==str[i-1].date)
		{
			if(str[i].num>str[i-1].num)
			{
				char ans[25]={'\0'};
				strcpy(ans,str[i].name);
				strcpy(str[i].name,str[i-1].name);
				strcpy(str[i-1].name,ans);
			}
		}
	}
	for(i=0;i<n;i++)
	printf("%s\n",str[i].name);
	return 0;

}

http://www.dtcms.com/a/60418.html

相关文章:

  • leetcode日记(90)二叉树的锯齿形层序遍历
  • 【已解决】最新 Android Studio(2024.3.1版本)下载安装配置 图文超详细教程 手把手教你 小白
  • 文件操作详解(万字长文)
  • 如何检查电脑的硬盘健康状况?
  • 深入解析 C++20 中的 `std::span`:高效、安全的数据视图
  • JWT在.NET8 Webapi中的使用
  • 行为模式---状态模式
  • 【Linux】37.网络版本计算器
  • 明日直播|Go IoT 开发平台,开启万物智联新征程
  • Android 内存泄漏实战:从排查到修复的完整指南
  • ThreadLocal源码剖析
  • 重估首程控股:一只产业生态完整的“机器人ETF”
  • 第7节: 广域网协议与WLAN技术入门
  • 如何用Python提取JSON数据中的键值对并保存为CSV文件?
  • Win 转 MacBook Pro 踩坑指南
  • java BCC异或校验例子
  • 使用Mockito实现单元测试
  • Bootstrap:图标库的安装及其使用
  • spring boot和spring cloud的区别
  • 【0016】Python数据类型-不可变集合详解
  • Retouch Pro 3.2.0汉化版深度解析:AI智能人像修图新利器
  • 开源许可证通俗、简洁介绍
  • K8s 1.27.1 实战系列(八)Service
  • 5G基本概念
  • fiddler+雷电模拟器(安卓9)+https配置
  • 计算机网络--访问一个网页的全过程
  • 从Manus看网络安全:通用AI智能体重构安全运营
  • gdb调试以及常用相关工具(hexdump\objdump等)
  • Node.js与VUE安装
  • 化工厂防爆气象站:为石油化工、天然气等领域提供安全保障