上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ru035pu4xx 稍嫌羞澀的路人
註冊時間: 2008-08-26 文章: 4
0.00 果凍幣
|
發表於: 2008-10-7, AM 3:44 星期二 文章主題: [c++][入門]對於迴圈還是有點點看不懂... |
|
|
代碼: | #include <iostream>
using namespace std;
int main()
{
const int num =5;
int test [num];
cout <<num<<"請輸入學生分數。<<\n";
for (int i=0;i<num;i++)
{ cin>> test[i] }
for (int s=0;s<num-1;s++)
{for(int t=s+1;t<num;t++)
{ if (test[t]>test[s])
{ int tmp=test[t];
test [t]=test[s];
test[s]=tmp;
}
}
}
for(int j=0;j<num;j++)
{ cout <<j+1<<"號學生的分數為"<<test [j]<<"。\n";
}
return 0;
} |
有誰可以給我很詳細的解說嗎...
我看的霧傻傻..
再寫程式的時候
有什麼辦法可以很快的理解要怎麼寫迴圈的程式嗎?..
我K C++的書的時候
想這個問題想了很久
我感覺自己沒有辦法很快的就能寫出類似這種迴圈的程式..
拜託各位高手替我解答了..="= |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2008-10-7, AM 8:35 星期二 文章主題: Re: [c++][入門]對於迴圈還是有點點看不懂... |
|
|
ru035pu4xx 寫到: |
有誰可以給我很詳細的解說嗎...
我看的霧傻傻..
再寫程式的時候
有什麼辦法可以很快的理解要怎麼寫迴圈的程式嗎?..
我K C++的書的時候
想這個問題想了很久
我感覺自己沒有辦法很快的就能寫出類似這種迴圈的程式..
拜託各位高手替我解答了..="= |
這就只是在排序而已
想要很快的看懂或者很快的寫出來
最好的方法就是靠經驗
當你第一次看到或寫到這種東西
要花點時間理解是必然的
當你第二次看到或寫到
可能理解的時間就短了點
當你第三次、第四次甚至第十次、第一百次看到或寫到的時候
你的反應就會慢慢朝「反射動作」去接近
有句話叫勤能補拙
在這裡是很適用的
如果沒有聰明到一看就明白的大腦
那就靠不斷的經驗累積來把它刻在你的靈魂裡吧 |
|
回頂端 |
|
|
mirror 散播福音的祭司
註冊時間: 2007-07-27 文章: 174
828.60 果凍幣
|
發表於: 2008-10-8, AM 3:23 星期三 文章主題: |
|
|
多多實作,反覆練習思考
就算有天份的人一開始學的都懂
到後面愈學愈難,總會碰上停滯的時候
多多利用大腦思考,在腦海中幫邏輯連結 |
|
回頂端 |
|
|
ru035pu4xx 稍嫌羞澀的路人
註冊時間: 2008-08-26 文章: 4
0.00 果凍幣
|
發表於: 2008-10-9, AM 4:07 星期四 文章主題: |
|
|
嗯嗯!!
我知道了
謝謝你們~
我會努力練習的~^^ |
|
回頂端 |
|
|
vamper 對這略感興趣的新人
註冊時間: 2007-06-23 文章: 29 來自: 台灣 18.82 果凍幣
|
發表於: 2008-10-12, PM 10:10 星期日 文章主題: |
|
|
說真的...以前還是很菜的時候,也是跟你一樣XD。
現在回過頭來看這些程序,只要區分幾塊就行了,
也比較容易看的懂。
一個功能也只是一推演算法所組成的。
第一個程式區塊:只是兩個變數互換的演算法。
代碼: | int tmp=test[t];
test [t]=test[s];
test[s]=tmp; |
第二個:兩個數值的比大小。結合上面的區塊之後,
這樣的功能是指:只要「我」大於「你」,請給我互換。
第三個:一般人看到雙重迴圈就開始頭痛了,
別急 拿起筆跟紙,將這些變數填值進去看看,
來觀察這兩個迴圈的變化。
代碼: | for (int s=0;s<num-1;s++)
for(int t=s+1;t<num;t++) |
其他區塊就依樣畫葫蘆。
這樣就結束了?
不不~還要觀察這樣的時間複雜度大概多少?
哪些地方需要優化?我要怎麼「切」成模組化給user使用?
重點是!這個功能是否正常運作?
這每一個區塊就是自己往後的「小功能區塊」。
比如:要作swap的話,就是用第一個區塊就行了。
以上!
PS:金字塔也是每一塊小石頭拼出來的。從小事做起,別急。 |
|
回頂端 |
|
|
|