|
发表于 2022-5-7 22:29:04
|
显示全部楼层
#include<stdio.h>
int main()
{
int days[3],year[3];
int count,a,i,b;
int c=0,q=0;
int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
int d=0,sum=0,f;
printf("请输入你的生日(如1988-05-20): ");
scanf("%d-%d-%d",&days[0],&days[1],&days[2]);
printf("请输入今年日期(2016-03-28): ");
scanf("%d-%d-%d",&year[0],&year[1],&year[2]);
for(a=days[0]+1;a<year[0];) //算出相隔的年的数量
{
d++;
a++;
if(a%400==0||(a%4==0&&a%100!=0))//判断是否为闰年
{
i++;
}
else
{
count=(d-i)*365+i*366;
}
}
if(year[0]%400==0||(year[0]%4==0&&year[0]%100!=0))//判断今年那年是否是闰年
{
if(year[1]>2)//判断月份是否大于2月份
{
mon[1]=29;
for(b=0;b<year[1]-1;b++)
{
c=mon[b]+c;//计算月份的天数
}
}
else if(year[1]=2)
{
c=31;
}
else
{
c=0;
}
}
else
{
for(b=0;b<year[1]-1;b++)
{
c=mon[b]+c;
}
}
if(days[0]%400==0||(days[0]%4==0&&days[0]%100!=0))//判断生日的年份是否为闰年
{
if(days[1]=1)
{
mon[1]=29;
for(b=1;b<12&&b>0;b++)
{
q=q+mon[b];
}
}
else
{
for(b=2;b<12&&b>=days[1];b++)
{
q=q+mon[b];
}
}
f=mon[b]-days[2];//用月份数减去生日的当天
}
else
{
for(b=days[1];b<12&&b>=days[1];)
{
q=q+mon[b];
}
f=mon[b]-days[2];
}
sum=count+c+q+year[2]+f;
printf("你在这个世界上总共生存了%d天\n",sum);
return 0;
}
注意 数组是从下标0(&days[0], &year[0])开始访问的 |
|