被4整除且不被100整除,或被400整除者為閏年。
被4000整除不是閏年。
int main(int argc, char *argv[])
{int year;
printf("input\\n");
scanf("%d", &year) ;
if(year%4==0)
{if(year%100!=0)
printf("%d是閏年\\n",year);}
if(year%4!=0)
{printf("不是閏年\\n");}
if(year%4==0)
{if(year%100==0)
if(year%400!=0)
printf("%d不是閏年\\n",year);}
if(year%400==0)
printf("是閏年\\n");
前面是被4整除且不被100整除,或被400整除者為閏年。
請問要加上被4000整除不是閏年。要怎麼寫= =
我加上if(year%400==0)
if(year%4000==0)
printf("不是閏年\\n",year);
這樣會顯示是閏年 不是閏年
是不是因為他連 if(year%400==0)
printf("是閏年\\n");
這個條件都成立的關西
那我應該要怎麼寫呢~"~
我剛學而已,指令學的不多
很多邏輯也不太清楚
請用簡單一點的方式= =
我想了很久都寫不出來.......
2006-10-13 20:33:44 · 4 個解答 · 發問者 立豪 1 in 電腦與網際網路 ➔ 程式設計
通常if 和 else 會一起學到,如果你這題只用if的話,如你所見會變得越來大,條件要越設越多。因為if、else 不會很難,你可以學學看,如下if(條件){ 成立時執行}else{ 不成立時執行}他們只會擇一執行會了這個之後,你可以很容易的寫出你原本的題目如下//後面的字是註解,以下不省略任何一個{、}號#include
2006-10-14 17:34:56 補充:
謝謝補充^^.
這樣的確比較清楚
2006-10-13 21:14:48 · answer #1 · answered by adam! 5 · 0⤊ 0⤋
這題我和意見二的看法完全不同!
&& 優先於 ||!
一個連這都不清楚的程式師,不能算一個及格的 C 程式師!
加上那個 ( ) 只是給不熟 C 的人較容易看懂!
對一個 C 程式師而言,那是浪費:浪費
原始碼長度、
硬碟空間、
打字時間、
未來讀程式時間、
過去的業訓練、
C 語言辛的設計!
經常這樣打,也會使程式師慢慢忘計 優先權的順序!
使程式執行變慢、寫程式變慢...
缺點遠多於優點!
2007-09-01 06:29:23 補充:
就像這題的 if 裡的順序
4 -> 100 -> 400
這是有速度上的差別的!
若改成
400 -> 100 -> 4
程式一樣,執行速度卻較慢!
不常做這樣的訓練,就寫不出快的程式來!
不常思考 operator 的 優先權,也是一樣的道理!
2007-09-01 07:30:38 補充:
竟然少了 2 個字!
過去的〝專〞業訓練、
C 語言辛〝苦〞的設計!
還錯了一個字
慢慢忘〝記〞
為了不避不小心誤答,或遇到例外,自誤誤人,所以剛才做了實驗。
速度確如我說,速度比約為
1.461 : 1 (沒速度最佳化) 和
1.617 : 1 (速度最佳化)
2007-09-01 02:26:29 · answer #2 · answered by ? 7 · 0⤊ 0⤋
樓上的解答大致正確,不過
if (year%4==0&&year%100!=0 || year%400==0)
最好改成
if ((year%4==0&&year%100!=0) || year%400==0)
代表 (year%4==0&&year%100!=0)判斷或 year%400==0判斷,其一成立就可!!
2006-10-14 09:34:20 · answer #3 · answered by maria 3 · 0⤊ 0⤋
順序問題 順序問題 ._.\~/
我剛開始學的時候也是因為順序問題才弄不出來
(不過我現在還是一樣弱雞一隻= =..)
2006-10-13 20:42:47 · answer #4 · answered by Anonymous · 0⤊ 0⤋