close
標題:

C++~閏年~平年之看不懂

發問:

#include using namespace std;int main( ){int i,j;{for(i=1,j=1;i<=10000;i++,j+=i);{while(cin >> i)if (i==0)cout << "" << endl;else if(i % 4 == 0 && i % 100>0 )cout << "a leap year" << endl;else if... 顯示更多 #include using namespace std; int main( ) { int i,j; { for(i=1,j=1;i<=10000;i++,j+=i); { while(cin >> i) if (i==0) cout << "" << endl; else if(i % 4 == 0 && i % 100>0 ) cout << "a leap year" << endl; else if (i%400==0) cout << "a leap year" << endl; else cout << "a normal year" << endl;} } } 以上的code是要判斷是閏年或是平年 for(i=1,j=1;i<=10000;i++,j+=i);這行是什麼意思..為什麼要這樣寫? 還有'j'是要幹麻的啊?

最佳解答:

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

for(i=1,j=1;i<=10000;i++,j+=i); for迴圈後面有一個 ";"那個叫做"空"敘述,意即不做事的敘述, 這個迴圈於i=10001時結束,此時j=1+1+2+3..........+10001,就是做j的等加級數 "空"敘述的目的主要是為了混淆,誤使人認為此for迴圈與後者 { while(cin >> i) //略 } 相關,其實無關,那{}括號,只是又定義出一個內scope,執行閏年或是平年的判斷 while( cin >> i )代表,只要標準輸入內還有東西,就繼續執行判斷,否則就結束迴圈 cin有定義使用者自定轉換子 operator bool();可依函式多載需求被轉為bool值,while(...)內需要一個真假值,故cin >> i執行完後傳回一個cin,cin再轉為bool,若資料流有東東則為true,否則為false 迴圈內判斷平閏年的code,涉及個人審美觀念不同,故略過~

其他解答:

for 迴圈,計算次數 依照程式來看,應該是數年的數字. 從西元元年,開始數到10000年. j沒用到,不知道為什麼會有。FBEFE3C2E0474026
arrow
arrow
    文章標籤
    看不懂 平年
    全站熱搜

    njtnvdt 發表在 痞客邦 留言(0) 人氣()