代碼運(yùn)行超時(shí)問(wèn)題
我想問(wèn)一下老師為什么這個(gè)代碼會(huì)提示運(yùn)行超時(shí),是教程里面的一道題目,計(jì)算2008年8月8是該年中的某一天,代碼算法是我自己寫(xiě)的,跟“不會(huì)了怎么辦“里面的不一樣。我想請(qǐng)老師看看這個(gè)程序本身有沒(méi)有錯(cuò)誤,是不是根本不能解決這個(gè)問(wèn)題?
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用swtich語(yǔ)句,if...else語(yǔ)句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ? ?month-=1;
? ? ?for(;month>=1;month--){
? ? ? ? ?
? ? ?switch(month){
? ? ? ? ?case 1:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 2:
? ? ? ? ? ? day+=28;
? ? ? ? ? ? break;
? ? ? ? ?case 3:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 4:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
? ? ? ? ?case 5:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 6:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
? ? ? ? ?case 7:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ?}
? ? ?}
? ? if(year/4==0&&year/100!=0||year/400==0){
? ? ? ? day+=1;
? ? }
? ? printf("%d\n",day);
? ? return 0;
}?
2015-06-17
代碼修改一下,已經(jīng)可以了。我在自己電腦上運(yùn)行出結(jié)果了,沒(méi)有問(wèn)題。
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用swtich語(yǔ)句,if...else語(yǔ)句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ? ?month-=1;
? ? ?for(;month>=1;month--){
? ? ? ? ?
? ? ?switch(month){
? ? ? ? ?case 1:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 2:
? ? ? ? ? ? day+=28;
? ? ? ? ? ? break;
? ? ? ? ?case 3:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 4:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
? ? ? ? ?case 5:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ? ?case 6:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
? ? ? ? ?case 7:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
????????
????????case 8:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
????????case 9:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
????????case 10:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
????????case 11:
? ? ? ? ? ? day+=30;
? ? ? ? ? ? break;
????????case 12:
? ? ? ? ? ? day+=31;
? ? ? ? ? ? break;
? ? ? ?}
? ? ?}
? ? if((year%4==0&&year%1000!=0)||year%400==0){
? ? ? ? day+=1;
? ? }
? ? printf("%d\n",day);
? ? return 0;
}?