代碼運行超時問題
我想問一下老師為什么這個代碼會提示運行超時,是教程里面的一道題目,計算2008年8月8是該年中的某一天,代碼算法是我自己寫的,跟“不會了怎么辦“里面的不一樣。我想請老師看看這個程序本身有沒有錯誤,是不是根本不能解決這個問題?
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用swtich語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? ?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)可以了。我在自己電腦上運行出結(jié)果了,沒有問題。
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用swtich語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側(cè)任務(wù)中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? ?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;
}?