1028_人口普查(20)

#include<stdio.h>
#include<stdlib.h>
typedef struct People
{
	char s[6];
	int year;
	int month;
	int day;
}People;
int cmp(void const *p1,void const *p2)
{
	if(((People *)(p1))->year>((People *)(p2))->year) return 1;
	else if(((People *)(p1))->year<((People *)(p2))->year) return 0;
	else
	{
		if(((People *)(p1))->month>((People *)(p2))->month) return 1;
		else if(((People *)(p1))->month==((People *)(p2))->month&&((People *)(p1))->day>((People *)(p2))->day) return 1;
		else return 0;
	}
}
int cmp1(People p1,People p2)
{
	if(p1.year>p2.year) return 1;
	else if(p1.year==p2.year)
	{
		if(p1.month>p2.month) return 1;
		else if(p1.month==p2.month&&p1.day>p2.day) return 1;
		else return 0;
	}
	else return 0;
}
int main()
{
	int n,i;
	People *a;
	People p1,p2;
	p1.year=1814;p1.month=9;p1.day=6;
	p2.year=2014;p2.month=9;p2.day=6;
	while(~scanf("%d",&n))
	{
		a=(People *)malloc(n*sizeof(People));
		i=0;
		while(i<n)
		{
			scanf("%s%d/%d/%d",a[i].s,&a[i].year,&a[i].month,&a[i].day);
			if(cmp1(a[i],p2)||cmp1(p1,a[i]))
				n--;
			else
				i++;
		}
		qsort(a,n,sizeof(People),cmp);
		if(n>0) printf("%d %s %s\n",n,a[0].s,a[n-1].s);
		else printf("0\n");
		free(a);
	}
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值