旅行时间和花费c语言编程,薛定谔的时间旅行 (C语言代码)

解题思路:

该题说白了就是求明年的今天是星期几。

闰年,共366天

平年,共365天

比如17年8月16到18年8月16就过去了365天,到19年8月16就是730天,以此类推,一个星期七天,            如果这个数字能被7整除,那就是那一年没错啦;

注意事项:

分三种情况  a. 2月28号之前(从当年判断是否为闰年)

b.3月1号之后(从下一年判断是否为闰年)

c. 输入的刚好是闰年的2月29日(非得闰年才有这一天)

参考代码:#include 

int runnian(int year);

int runnian(int year)            //判断闰年

{

if((year%4==0)&&(year%100!=0)||(year%400==0))

return 366;

else

return 365;

}

int main()

{

int t,sum=0;

int i;

int year,mounth,day;

char arr[10000][11];            //存储几组数据

scanf("%d",&t);

for(i=0;i

{

scanf("%s",arr[i]);

}

for(i=0;i

{

sum=0;

year=(arr[i][0]-'0')*1000+(arr[i][1]-'0')*100+(arr[i][2]-'0')*10+(arr[i][3]-'0');

mounth=(arr[i][5]-'0')*10+(arr[i][6]-'0');

day=(arr[i][8]-'0')*10+(arr[i][9]-'0');

while(1)

{

if(mounth<=2&&day<29)        //2月28之前

{

sum+=runnian(year);

if(sum%7==0)

{

printf("%d\n",year+1);

break;

}

else

year++;

}

else if(mounth==2&&day==29)  //2月29当天

{

sum+=runnian(year+1);

if(sum%7==0&&runnian(year+1)==366)

{

printf("%d\n",year+1);

break;

}

year++;

}

else                    //3月1日之后

{

sum+=runnian(year+1);

if(sum%7==0)

{

printf("%d\n",year+1);

break;

}

year++;

}

}

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值