c部落格作業02 迴圈結構

2022-06-01 05:45:09 字數 3837 閱讀 3967

while(表示式1)

do

while(表示式一);

do while語句和while主要的區別在於do while對於迴圈體中的語句先執行一次再判斷條件,而while則是先判斷條件再看是否執行迴圈體中的語句;而while語句和for同為迴圈語句,對於什麼時候用while語句什麼時候用for語句有一些區別,當不清楚迴圈次數時用while顯然要簡單一些,當清楚迴圈次數則用for;

我們來看下面這個例子

for(i=2;i<=m/2;i++)

or

for(i=2;i<=m;i++)

這雖然在一般的題中沒有什麼問題,但我覺得從時間角度來說,上面的句子節省了一半的迴圈時間,提高了程式的執行效率;所以我覺得在以後的程式設計中,多思考思考,也許能找到更好的方法來解決這些問題;

舉個例子:

for(i=1;i<=3;i++)

and

for(i=1;i<=3;i++)

第一種輸出的結果為『』**『』,而第二種輸出的結果為『』『』,雖然都是跳出迴圈,但continue只是跳出這次迴圈,執行下次迴圈;而break則是跳出迴圈語句,不再執行它;當然break也可以用於switch語句;

巢狀迴圈無非就是for中for,for中while,while中for;我覺得語法只要單獨的掌握了for和while迴圈,巢狀迴圈就不是問題,我覺得重要的還是實際例子中的運用;比如初始化變數應該放在for中的哪個地方,以及何時恰當的運用break和continue,使語句恰當的執行;

需要清空多餘字元時用fflush(stdin);

清屏system(「cls」);

鞏固了隨機數rand(),它存在於#include;

隨機種子srand(time(null));隨機種子存在於#include;

在本章學習中,我覺得已經掌握了基本語法,差的只是實際中的運用,多做點題目,我覺得可以掌握,唯一讓人就是這星期太多作業了,不是在預習的路上就是在預習,但也讓人很充實,沒有一點的偷懶;

上週總共**量為300行

這週的**量為400行,距離預定的差太多了,這週得再接再厲了;

水仙花數是指乙個n位正整數(n≥3),它的每個位上的數字的n次冪之和等於它本身。

資料處理:迴圈變數 int i,j;計算總和的int sum;取餘後最後一位數:int num;去掉最後一位數的變數:int item;

定義變數

初始化變數sum;

輸入變數n;

for(i=最小的n位數;i<=最大的n位數;i++)

if(判斷是否為水鮮花數)

輸入資料

輸出資料說明3

153\n370\n371\n407

最小資料,題目資料

71741725\n9800817\n9926315

最大資料

1.編譯錯誤:未定義變數item

2.答案錯誤:sum沒有在內部初始化,導致下一次迴圈有原來的值;通過除錯,在內部初始化了sum=0;

3.答案錯誤:沒有使item=i,導致每一次item都為原來的值,迴圈出不來;在乙個for內使item=i;

4.部分正確:在改正了前兩個後,還有乙個在多次呼叫pow函式造成的執行超時問題;我直接造了乙個po函式,讓主函式直接呼叫它,雖然在vs上看不出有多少差別,但在pta上卻通過了,事實證明自己寫的函式應該比呼叫系統函式庫裡的要快一點;

已知函式ex可以展開為冪級數1+x+x​2​/2!+x3/3!+⋯+x​k /k!+⋯。現給定乙個實數x,要求利用此冪級數部分和求e​x的近似值,求和一直繼續到最後一項的絕對值小於0.00001。

資料處理:輸入實數double x和double sum;迴圈變數int i;階乘double temp;

定義變數;

輸入x;

for判斷條件

輸出sum;

輸入資料

輸出資料

說明1.2

3.3201

題目資料

01.0000

最小資料

5148.1432

最大資料

1.執行超時:起先執行錯誤,我用vs結果顯示5的時候,答案是負數,我就加了乙個fabs,結果超時,就以為是呼叫的問題,解決:無法找出原因,就換了乙個方法寫;

2.答案錯誤:換了方法後顯示答案錯誤,這種題用vs查錯我也不會,設斷點也不行,用printf輸出也不行;解決:叫同學幫忙看後,才知道階乘的定義錯了,將int改為double就好了,以前知道但不以為然,這次讓我浪費了這麼多時間才讓我長了教訓

烏龜與兔子進行賽跑,跑場是乙個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問t分鐘後烏龜和兔子誰跑得快?

資料處理:定義了迴圈變數int i;烏龜兔子的路程int rabbit;int tortoise;總時間int time;

定義變數;』

初始化路程;

輸入時間;

for迴圈條件

輸入資料

輸出資料

說明242

@_@ 726

最後未滿30分鐘的

9_ 81

未滿10分鐘的

40@_@ 120

剛好滿30分的

1.答案錯誤:未將兔子在跑中獲勝的算進去。解決:放個if語句進去,判斷滿30和沒滿30的情況,分別輸出

2.部分正確:輸出平局是未將路程寫進去,解決:將兔子或烏龜的路程放進去即可

1.**的複雜度不同,乙個列印空心菱形用的的一段直接列印,乙個用的兩段列印上下

2.定義的變數乙個多乙個少,乙個有用到字元變數

1.乙個輸入選單時用了函式,乙個直接列印

2.乙個將==0的情況放在了switch語句裡,乙個單獨用了一種情況

C部落格作業02 迴圈結構

本章主要學習了關於迴圈的一系列問題,由上一章學習的基礎語法及for迴圈過度到本章學習的while迴圈和do while迴圈以及它們之間相互的巢狀,自此迴圈的種類多樣化,更能解決生活中對應的繁雜巢狀的一些問題,這也要求我們掌握迴圈的本質 解決規律性的,重複的工作.並能夠看透各種題目背後的可迴圈性.當然...

C部落格作業02 迴圈結構

迴圈結構 單層 175 迴圈的巢狀 115 總分 290 烏龜每分鐘可以前進3公尺,兔子每分鐘前進9公尺 兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鐘回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鐘,否則繼續跑10分鐘 而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同...

C部落格作業02 迴圈結構

do while迴圈 break和continue語句 巢狀迴圈 2.1.1 偽 定義字元型變數ch oldch用了儲存使用者輸入的字元 定義乙個整型變數num,當使用者輸入的字元為數字時,將數值儲存到num中 定義乙個整型變數result,用於儲存並輸出計算的結果 定義乙個flag 0,用於判斷使...