标题:算算活了几天
只看楼主
greatvictory
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-30
 问题点数:0 回复次数:3 
算算活了几天

我只学到循环,知道方法比较笨,大家批评指点一下~谢谢~

#include<stdio.h>
#include<math.h>
void main()
{

int year1,year2,month1,month2,day1,day2,run,t=0,m,n,j,k,day;
printf("请输入您的出生日期,如1986-8-4:");
scanf("%d-%d-%d",&year1,&month1,&day1);
printf("请输入今天的日期,如2005-3-21:");
scanf("%d-%d-%d",&year2,&month2,&day2);
/*先算出出生后的第二年到去年一共有多少天*/
j=year1+1; /*j为出生后第二年的年份*/
while (j<year2) /*循环条件是比今年小,即到去年的年份为止*/
{
if (j%4==0&&j%100!=0||j%400==0) run=1;
else run=0; /*判断j这个年份是否为润年,是的话赋值run为1,否为0*/
t=t+run; /*t为多出来的天数,即年份是闰年就会会多一天,累加起来*/
j=j++; /*年份加1后再循环*/
}
k=(year2-year1-1)*365+t; /*出生年到去年的年数乘365后再加上多出来的天数*/
/*算出生后那天起到来年有几天*/
switch(month1)
{
case 1:m=0;break;
case 2:m=31;break;
case 3:m=31+28;break;
case 4:m=31+28+31;break;
case 5:m=31+28+31+30;break;
case 6:m=31+28+31+30+31;break;
case 7:m=31+28+31+30+31+30;break;
case 8:m=31+28+31+30+31+30+31;break;
case 9:m=31+28+31+30+31+30+31+31;break;
case 10:m=31+28+31+30+31+30+31+31+30;break;
case 11:m=31+28+31+30+31+30+31+31+30+31;break;
case 12:m=31+28+31+30+31+30+31+31+30+31+30;break; /*m为出生那年过去的月份有几天*/
}
m=365-m-day1; /*算出生后那天起到出生那年结束有几天*/
/*算今年的天数*/
switch(month2)
{
case 1:n=0;break;
case 2:n=31;break;
case 3:n=31+28;break;
case 4:n=31+28+31;break;
case 5:n=31+28+31+30;break;
case 6:n=31+28+31+30+31;break;
case 7:n=31+28+31+30+31+30;break;
case 8:n=31+28+31+30+31+30+31;break;
case 9:n=31+28+31+30+31+30+31+31;break;
case 10:n=31+28+31+30+31+30+31+31+30;break;
case 11:n=31+28+31+30+31+30+31+31+30+31;break;
case 12:n=31+28+31+30+31+30+31+31+30+31+30;break; /*n为过去的月份有几天*/
}
if (year2%4==0&&year2%100!=0||year2%400==0) run=1;
else run=0; /*判断今年是否为闰年*/
if (run=1&&month2>=2) n=n+++day2; /*如果是闰年的话而且过了二月,就加一天*/
else if (run=1) n=day2; /*如果是闰年,但是一月的话直接就是日期了*/
else n=n+day2; /*不是闰年,就直接加上日期*/
day=k+m+n;/*把三个结果加起来*/
printf("到今天为止您活了%d天\n",day);
}

搜索更多相关主题的帖子: 年份 include printf 
2006-03-30 14:27
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
好像平年365天.闰年366天吧!
你先判断是否为闰年;
再计算今天的天数相加就行了.
2006-03-30 15:03
hb1122
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-3-28
得分:0 
我还在学第一章,呵呵!

偶很笨,但偶很好学,偶很菜,但偶很努力! 希望能得到好多好心的好人帮偶学习! 呵呵!!
2006-03-30 16:00
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
得分:0 
getdate()可以获得今天的日期

2006-03-30 21:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-53929-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073600 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved