C语言实现计算你活了多少天

**

你活了多少天

**
人生短暂,光阴如梭,绝大多数人活不到4万天,珍惜每一天,不负韶华。本程序根据输入的生日及当前日期计算已活得天数并输出。

输入格式:
输入在一行中给出生日及当前日期,按日期年月日输入,题目保证出生日期小于当前日期。

输出格式:
按You have lived n days.格式输出已活得天数,其中n是计算出的活的天数。

输入样例:
2001 10 1
2020 11 20
输出样例:
You have lived 6990 days.

#include <stdio.h>
int main() 
{
	int x1,x2,y1,y2,z1,z2;
	int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
	scanf("%d %d %d",&x1,&y1,&z1);
	scanf("%d %d %d",&x2,&y2,&z2);
	int num=0,i,j,k;
	if((x2-x1)>1) 
	{
		for(i=x1+1;i<=x2-1;i++) 	
		{
			if(i%4==0&&i%100!=0||i%400==0) 
			{
				num=num+366;
			} 
			else num=num+365;
		}
	}
	if(x1%4==0&&x1%100!=0||x1%400==0) a[2]=29;
	if(x1==x2) 
	{
		for(i=y1+1;i<y2;i++) 
		{
			num=num+a[i];
		}
		num=num+(a[y1]-z1)+z2;
	}
	a[2]=28;	
	if(x1!=x2) 
	{
		if(x1%4==0&&x1%100!=0||x1%400==0) a[2]=29;	
		for(i=y1+1;i<=12;i++) 
		{
			num+=a[i];
		}
		num+=(a[y1]-z1);
		a[2]=28;
		if(x2%4==0&&x1%100!=0||x2%400==0) a[2]=29;		
		for(i=y2-1;i>=1;i--) 
		{
		num+=a[i];
		}
		num+=z2;
	}
	printf("You have lived %d days.",num);
	return 0;
}
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
绝对的练习 计算过的数(C语言),本人刚刚学,大家多多指教。 #include "stdio.h" int main(void) { int erorr1(); int y/*年*/,m/*月*/,d/*日*/,t1,t2/*头一年过的数*/,tlife/*过的总数*/,i/*循环计数器*/,i1=0/*闰年计数器*/,r1/*闰年判断*/; printf("--------------------------------------------------------------------------------"); printf("计算过的数(更新到2010/3/10)\n"); printf("--------------------------------------------------------------------------------"); printf("输入生日(如1987/3/30):"); scanf("%d/%d/%d",&y,&m,&d);/*输入生日*/ if ((y%4==0 && y%100!=0)||(y%100==0 && y%400==0))/*判断是否是闰年*/ r1=1; else r1=0; switch(m)/*分情况讨论输入的月份*/ { case 1: if(d>0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d0 && d<32) /*判断日子是否输入有误*/ { t1=31+28+31+30+31+30+31+31+30+31+30+d; } else { erorr1(); return 0; } break; default:/*避免月份输入有误*/ erorr1(); return 0; } /*通过判断输入的月份来计算头年过的数*/ t2=365-t1; if (r1==1&&(t1<=59)) t2++;/*闰年过的头年的数*/ for(i=y+1;i0) printf("你总共了%d,珍惜生命,因为它不会重来!\n",tlife); else if (tlife<0) printf("你总共了%d(貌似还没出生)别乱来,生命不能拿来开玩笑!\n",tlife); else printf("你总共了%d(刚刚出生的宝宝)赶紧喊你妈妈给你喂奶!\n",tlife); printf("--------------------------------------------------------------------------------"); main(); } int erorr1() { printf("生日输入有误!\n按任意键退出..."); getch(); return 0; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枳实、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值