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+x2/2!+x3/3!+⋯+xk /k!+⋯。現給定乙個實數x,要求利用此冪級數部分和求ex的近似值,求和一直繼續到最後一項的絕對值小於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,用於判斷使...