C语言找出最大年龄学生信息

目录

问题分析

代码实现

运行结果


问题分析

*首先对问题进行分析:

    学生年龄最大要求(1)该学生的出生年份必须最早

                               (2)该学生的出生月份必须最早

                                (3)该学生的出生日必须最早

若学生出生年份相同则进行出生月份的比较若出生月份相同则继续比较其出生日

 *代码构思:首先这个学生作为一个整体定义时必须要包含该学生的出生年份,其次进行月份以及出生日信息的存储最容易想到利用结构体来实现:

定义一个数组来存放学生的名字

定义一个长整型变量或者数组来保存学生的个人出生年份

定义一个整形变量用于存储学生的个人出生月份

同样定义一个整形变量用于存储学生的出生日

*这个问题实现的关键在于学生信息的存储及对最大年龄学生的筛选

代码实现

 #include<stdio.h>
//定义结构体
  struct student
  {
char name[20];//存储学生的个人姓名信息
int birth;//用于存储学生的出生年份
int year;//用于存储学生的出生月份
int day;//用于存储学生的出生日
  }student[100],t;//定义结构体,数组变量
  int main()
  {
int i,n,j;
scanf("%d",&n);
//对学生的信息进行录入包括姓名,出生年月以及日
for(i=0;i<n;i++)
scanf("%s%d%d%d",student[i].name,&student[i].year,&student[i].birth,&student[i].day);
for(i=0;i<n;i++)
{
//找出所有学生中年龄最大的那位学生并将其信息保存在student[0]中
if(student[0].year!=student[i].year&&student[0].year>student[i].year)
{
t=student[0];
student[0]=student[i];
student[i]=t;
}
if(student[0].year==student[i].year)//出生年份相同
{
          if(student[0].birth>student[i].birth)
  {
  //找出年份相同时月份最小的那个学生信息
  t=student[0];
student[0]=student[i];
student[i]=t;
  }
}
      if(student[0].year==student[i].year&&student[0].birth==student[i].birth)//出生年份和月份相同
  { 
  //若俩个学生出生年份和月份都一样则进行出生日的比较找出出生日最小的那个
        if(student[0].day>student[i].day)
{
t=student[0];
student[0]=student[i];
student[i]=t;
        }
}
}
//输出年龄最大的学生的信息
printf("%s %d-%d-%d\n",student[0].name,student[0].year,student[0].birth,student[0].day);
return 0;

}

运行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值