C语言程序编写(急)

编写程序,输入一位学生的生日(年:y0、月m0、日d0),并输入当前的日期(年y1、月m1、日d1),输入该生的实际年龄。是输出该生的实际年龄... 编写程序,输入一位学生的生日(年:y0、月m0、日d0),并输入当前的日期(年y1、月m1、日d1),输入该生的实际年龄。
是输出该生的实际年龄
展开
 我来答
wxm1659
2008-07-29
知道答主
回答量:81
采纳率:0%
帮助的人:32万
展开全部
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
如果要计算到那一天就比较麻烦了,因为月的天数是不同的需要逐个判断,这个只计算到了月份
kesyn
2008-07-29 · TA获得超过478个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:313万
展开全部
先判断日,再判断月,再判断年,两年相减,然后判断两月日先后判断相减结果是否需要调整
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1NEVER1
2008-07-29
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
怎么都只有输入没输出的
编来干吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
willgd
2008-07-29 · 超过36用户采纳过TA的回答
知道答主
回答量:323
采纳率:0%
帮助的人:0
展开全部
设三个相应的变量Y M D,把当前日期-生日的对应值赋给三个变量,打印输出即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ivanzxy
2008-07-29 · TA获得超过1166个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:366万
展开全部
下面的程序是以前做的一道"输入某年某月某日,判断这一天是这一年的第几天?"的题目.
至于你的题目,
可以先用下面的程序分别得到:
那位学生是哪一年的第多少天出生的.
当前日期是这一年的第多少天

最后两项目相减,得到他的实际年龄是多少岁零多少天..

/*题目:输入某年某月某日,判断这一天是这一年的第几天?*/
#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);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式