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;
}
绝对的练习 计算过的数(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; }
C语言中,计算一个人了多少可以通过编写一个程序来实现。这个程序需要计算从一个人的出生日期到当前日期的数差。以下是实现这一功能的基本步骤: 1. 获取用户的出生日期和当前日期。 2. 将两个日期转换为统一的格式,例如“年月日”。 3. 计算年份差、月份差和日期差。 4. 考虑闰年对数的影响,因为闰年有366而不是平年的365。 5. 计算两个日期之间总的数差。 下面是一个简单的C语言程序示例,用于计算了多少: ```c #include <stdio.h> // 判断是否为闰年 int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 每个月的数,注意二月份会根据是否为闰年来确定 int getDaysOfMonth(int year, int month) { int daysOfMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (month == 2 && isLeapYear(year)) { return 29; } return daysOfMonth[month - 1]; } // 计算两个日期之间的数差 int calculateDays прожито(int birthYear, int birthMonth, int birthDay, int currentYear, int currentMonth, int currentDay) { int days прожито = 0; for (int year = birthYear; year < currentYear; year++) { days прожито += isLeapYear(year) ? 366 : 365; } // 计算当前年份的数差 for (int month = birthMonth; month < currentMonth; month++) { days прожито += getDaysOfMonth(currentYear, month); } // 加上当前月份的数差 days прожито += currentDay; // 如果出生月份还没到,需要减去当年的数 if (birthMonth > currentMonth) { for (int month = currentMonth + 1; month < birthMonth; month++) { days прожито -= getDaysOfMonth(currentYear, month); } days прожито -= birthDay; } else if (birthMonth == currentMonth) { // 如果出生月份和当前月份相同,还需要减去出生的日期 days прожито -= birthDay; } return days прожито; } int main() { int birthYear, birthMonth, birthDay; int currentYear, currentMonth, currentDay; // 获取用户输入的出生日期 printf("请输入你的出生年份: "); scanf("%d", &birthYear); printf("请输入你的出生月份: "); scanf("%d", &birthMonth); printf("请输入你的出生日期: "); scanf("%d", &birthDay); // 获取当前日期 currentYear = 2023; // 假设当前年份为2023 currentMonth = 4; // 假设当前月份为4 currentDay = 1; // 假设当前日期为1 // 计算并输出了多少 int days = calculateDays прожито(birthYear, birthMonth, birthDay, currentYear, currentMonth, currentDay); printf("你已经了 %d 。\n", days); return 0; } ``` 这个程序是一个简化的版本,它假设当前年份为2023年,当前月份和日期为代码中的固定值。在实际应用中,你可能需要动态获取当前日期。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

枳实、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值