C语言 输入一位学生的生日(年 月 日),并输入当前的日期(年 月 日),输出该生的实际年龄。

如题所述

#include<stdio.h>
int main()
{
int year,month,day;
int birthY,birthM,birthD;
int N;
printf("请输入生日");
scanf("%d%d%d",&birthY,&birthM,&birthD);
printf("请输入当前日期");
scanf("%d%d%d",&year,&month,&day);
N=year-birthY;
if(month<birthM)
N--;
else
if(month==birthM)
if(day<birthD)
N--;
printf("年龄为%d\n",N);
return 0;
}
没调试。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-14
#include<stdio.h>
main()
{
int y0,m0,d0,y1,m1,d1,y,m,d;
while(1)
{
printf("请输入学生的生日");scanf("%d %d %d",&y0,&m0,&d0);
printf("请输入当前的日期");scanf("%d %d %d",&y1,&m1,&d1);
y=y1-y0;
m=m1-m0;
d=d1-d0;
//printf("该学生的年龄为%d岁%d月%d天",y,m,d);
if(y>=0)
{
if(m>=0)
{
if(d>=0)printf("1该学生的年龄为%d岁",y);//y>=0,m>=0,d>=0输出年龄
else
{
m=m-1;//如果d<0,m减1,再判断m是否大于等于0
if(m>=0)printf("2该学生的年龄为%d岁",y);//y>=0,m>=0,d<0输出年龄
else
{
y=y-1;//如果m<0,y减1,再判断y是否大于等于0
if(y>=0)printf("3该学生的年龄为%d岁",y);//y>=0,m<0,d<0输出年龄
else
{
printf("4输入有误");//y<0,m<0,d<0
}
}
}
}
else //那么在y>=0,而m<0的情况下
{
y=y-1;
if(y>=0)printf("6该学生的年龄为%d岁",y);
else
{
printf("7输入有误");
}
}
}
else printf("5输入有误");//最先判断年份,如果y<0,就错了,因为当前日期不可能小于学生的生日
getchar();
getchar();
}
}
第2个回答  2009-07-26
#include<stdio.h>
int main()
{
int year,month,day;
int birthY,birthM,birthD;
int N;
printf("请输入生日");
scanf("%d%d%d",&birthY,&birthM,&birthD);
printf("请输入当前日期");
scanf("%d%d%d",&year,&month,&day);
N=year-birthY+1; /*改了这里!!!!!!!!!!!!*/
if(month<birthM)
N--;
else
if(month==birthM)
if(day<birthD)
N--;
printf("年龄为%d\n",N);
return 0;
}
分别给我,人一出生是1岁,没有零岁的
相似回答