C语言程序编写(急)
编写程序,输入一位学生的生日(年:y0、月m0、日d0),并输入当前的日期(年y1、月m1、日d1),输入该生的实际年龄。是输出该生的实际年龄...
编写程序,输入一位学生的生日(年:y0、月m0、日d0),并输入当前的日期(年y1、月m1、日d1),输入该生的实际年龄。
是输出该生的实际年龄 展开
是输出该生的实际年龄 展开
5个回答
展开全部
int year1,year2,month1,month2,day1,day2,year,month,day;
main()
{
int year1,year2,month1,month2,day1,day2,year,month,day;
printf("请输入生日,以及当前输入时间\n");
printf("输入格式为�ear1-month1-day1,year2-month2-day2\n");
scanf("%ld-%d-%d,%ld-%d%d\n", &year1,&month1,&day1,&year2,&month2,&day2);
printf("生日为:%ld-%d-%d\n",year1,month1,day1);
if(year1>year2)
printf("输入错误,");
else if(year1>=year2 && month1>month2)
printf("输入错误");
else if(month1>12||month2>12||day1>31||day2>31)
printf("输入错误");
else if(year1>=year2 && month1>=month2 && day1>day2)
printf("输入错误");
else
{
if(month1>month2)
{ year=year2-year1-1;
month=month2+12-month1;
}
else if(month1<=month2)
{
year=year2-year1;
month=month2-month1;
}
}
printf("nianling:%ld-%d\n",year,month);
}
[wxm@test lizhi]$ gcc dy.c -o dy
[wxm@test lizhi]$ ./dy
请输入生日,以及当前输入时间
输入格式为�ear1-month1-day1,year2-month2-day2
1983-2-13,2008-7-29
-
生日为:1983-2-13
nianling:25-5
如果要计算到那一天就比较麻烦了,因为月的天数是不同的需要逐个判断,这个只计算到了月份
main()
{
int year1,year2,month1,month2,day1,day2,year,month,day;
printf("请输入生日,以及当前输入时间\n");
printf("输入格式为�ear1-month1-day1,year2-month2-day2\n");
scanf("%ld-%d-%d,%ld-%d%d\n", &year1,&month1,&day1,&year2,&month2,&day2);
printf("生日为:%ld-%d-%d\n",year1,month1,day1);
if(year1>year2)
printf("输入错误,");
else if(year1>=year2 && month1>month2)
printf("输入错误");
else if(month1>12||month2>12||day1>31||day2>31)
printf("输入错误");
else if(year1>=year2 && month1>=month2 && day1>day2)
printf("输入错误");
else
{
if(month1>month2)
{ year=year2-year1-1;
month=month2+12-month1;
}
else if(month1<=month2)
{
year=year2-year1;
month=month2-month1;
}
}
printf("nianling:%ld-%d\n",year,month);
}
[wxm@test lizhi]$ gcc dy.c -o dy
[wxm@test lizhi]$ ./dy
请输入生日,以及当前输入时间
输入格式为�ear1-month1-day1,year2-month2-day2
1983-2-13,2008-7-29
-
生日为:1983-2-13
nianling:25-5
如果要计算到那一天就比较麻烦了,因为月的天数是不同的需要逐个判断,这个只计算到了月份
展开全部
先判断日,再判断月,再判断年,两年相减,然后判断两月日先后判断相减结果是否需要调整
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设三个相应的变量Y M D,把当前日期-生日的对应值赋给三个变量,打印输出即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面的程序是以前做的一道"输入某年某月某日,判断这一天是这一年的第几天?"的题目.
至于你的题目,
可以先用下面的程序分别得到:
那位学生是哪一年的第多少天出生的.
当前日期是这一年的第多少天
最后两项目相减,得到他的实际年龄是多少岁零多少天..
/*题目:输入某年某月某日,判断这一天是这一年的第几天?*/
#include<stdio.h>
void main()
{
int year,month,day,x;
int flag=0;
printf("请输入年份:");
scanf("%d",&year);
printf("请输入月份:");
scanf("%d",&month);
printf("请输入日期:");
scanf("%d",&day);
switch(month)
{
case 1:x=0;break;
case 2:x=31;break;
case 3:x=59;break;
case 4:x=90;break;
case 5:x=120;break;
case 6:x=151;break;
case 7:x=181;break;
case 8:x=212;break;
case 9:x=243;break;
case 10:x=273;break;
case 11:x=304;break;
case 12:x=334;break;
default: printf("error:请输入正确的日期...");break;
}
x+=day;
if(year%400==0 || (year%4==0 && year%100!=0)) //满足此条件这该年是闰年
{
if(month>2)
{
x++;
}
}
printf("\n您输入的是%d年%d月%d日\n",year,month,day);
printf("这天是这一年的第%d天\n",x);
}
==============================
当然.如果只算岁数不算天数就好办了.
#include<stdio.h>
void main()
{
if(m1>m0)
{
printf("他今年%d岁\n",y1-y0);
}
else if(m1<m0)
{
printf("他今年%d岁\n",y1-y0-1);
}
else
{
if(d1>=d0)
printf("他今年%d岁\n",y1-y0);
else
printf("他今年%d岁\n",y1-y0-1);
}
}
至于你的题目,
可以先用下面的程序分别得到:
那位学生是哪一年的第多少天出生的.
当前日期是这一年的第多少天
最后两项目相减,得到他的实际年龄是多少岁零多少天..
/*题目:输入某年某月某日,判断这一天是这一年的第几天?*/
#include<stdio.h>
void main()
{
int year,month,day,x;
int flag=0;
printf("请输入年份:");
scanf("%d",&year);
printf("请输入月份:");
scanf("%d",&month);
printf("请输入日期:");
scanf("%d",&day);
switch(month)
{
case 1:x=0;break;
case 2:x=31;break;
case 3:x=59;break;
case 4:x=90;break;
case 5:x=120;break;
case 6:x=151;break;
case 7:x=181;break;
case 8:x=212;break;
case 9:x=243;break;
case 10:x=273;break;
case 11:x=304;break;
case 12:x=334;break;
default: printf("error:请输入正确的日期...");break;
}
x+=day;
if(year%400==0 || (year%4==0 && year%100!=0)) //满足此条件这该年是闰年
{
if(month>2)
{
x++;
}
}
printf("\n您输入的是%d年%d月%d日\n",year,month,day);
printf("这天是这一年的第%d天\n",x);
}
==============================
当然.如果只算岁数不算天数就好办了.
#include<stdio.h>
void main()
{
if(m1>m0)
{
printf("他今年%d岁\n",y1-y0);
}
else if(m1<m0)
{
printf("他今年%d岁\n",y1-y0-1);
}
else
{
if(d1>=d0)
printf("他今年%d岁\n",y1-y0);
else
printf("他今年%d岁\n",y1-y0-1);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询