1181: 谁的年龄最小(结构体专题)

2023-04-27 20:58:02 浏览数 (2)

题目描述

设计一个结构体类型,包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。输入n个好友的信息,输出年龄最小的好友的姓名和出生日期。

输入

首先输入一个整数n(1<=n<=10),表示好友人数,然后输入n行,每行包含一个好友的信息:姓名(不超过8位)以及三个整数,分别表示出生日期的年月日。

输出

输出年龄最小的好友的姓名和出生日期,用空格隔开,出生日期的输出格式见输出样例。

样例输入 Copy

代码语言:javascript复制
3
Zhangling 1983 2 4
Wangliang 1983 12 11
Fangfang 1985  6 1

样例输出 Copy

代码语言:javascript复制
Fangfang 1985-06-01
代码语言:javascript复制
#include <stdio.h>

struct Borndaily{
	int year;
	int month;
	int day;
};

struct Friend{
	char name[25];
	struct Borndaily date;
}friends[10]; 

int main(){
	int n,i;
	scanf("%d",&n);
	getchar();


	for(i=0; i<n; i  ){
		scanf("%s%d%d%d",
		friends[i].name,&friends[i].date.year,&friends[i].date.month,&friends[i].date.day);
	}
	int t=0;//默认第一个朋友年龄最小 
	for(i=1; i<n; i  ){//年月日大的年龄小,年月日依次比较
		if(friends[i].date.year>=friends[t].date.year||
			friends[i].date.year==friends[t].date.year &&friends[i].date.month>=friends[t].date.month||
			friends[i].date.year==friends[t].date.year &&friends[i].date.month==friends[t].date.month &&
			friends[i].date.day>friends[t].date.day){
				t=i;
			}
	}
	
	printf("%s %d-d-dn",
		friends[t].name,friends[t].date.year,
		friends[t].date.month,friends[t].date.day);
		
	return 0;
} 

0 人点赞