(一)改錯題
序列求和:輸入一個正實數eps,計算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... ,精確到最后一項的絕對值小於eps(保留6位小數)。
修改前的源代碼

錯誤信息(1):

錯誤原因:用do while循環語句在while后面要加分號,這個語句特殊需牢記
改正方法:在while后面加上分號
錯誤信息(2):

錯誤原因:item = 1/ n;次語句中n定義為整型,所以1/n不會出現小數
改正方法:把 item = 1/ n; 改為 item = (double)1/ n;
錯誤信息(3):

錯誤原因: }while( item < eps);此語句錯誤;因為該循環語句中的循環條件是當 item < esp 條件滿足是輸出,而源代碼中誤解為item > esp時輸出
改正方法:把}while( item < eps);改為}while( item > eps);
錯誤信息(4):

錯誤原因:題干中要求把最后一項小於eps的那一項也加上
改正方法:在循環語句結束后輸出語句前加上該語句s = s + flag * item;
錯誤信息(5):

錯誤原因: double變量的輸入引號內,如果是小數,輸出用%f,而輸入用%lf
改正方法:把 scanf("%f",&eps);語句改為 scanf("%lf",&eps);
輸出修改完后的源代碼:

與期望符合!
(二)學習總結
(一)語句while(1)和for(;;)是什么意思?,如何保證這種循環能正常執行?
(1)都是無限循環,在循環語句中if語句后面加上break;就可以正常跳出,從而正常執行了
(二)一般情況下,設計循環結構時,使用for、while、do while三種語句都可以,並且三種語句可以相互轉換,但是,在某些特定情況下,我們應該優先選擇某種語句來快速實現循環設計。如果有如下情況:
(1)循環次數已知
(2)循環次數未知,但循環條件在進入循環時明確
(3)循環次數未知,且循環條件在進入循環時未知,需要在循環體中明確
針對上面三種情況,分別采用什么循環語句實現比較好?對每種情況,用我們完成的兩次循環結構作業中的題目加以說明。
(1)循環次數已知使用for循環語句實現比較好
(2)循環次數未知,但循環條件在進入循環時明確使用while循環語句實現比較好
(3)循環次數未知,且循環條件在進入循環時未知,需要在循環體中明確使用do while循環語句實現比較好
for循環語句例題:PTA中循環結構(1)中第三題

while循環語句例題:PTA中循環結構(2)中第四題

do while循環語句例題:PTA循環結構(2)中第五題

(三)有如下問題:輸入一批學生成績,以-1作為結束,計算學生的平均成績。
用for循環語句實現

用while循環語句實現

用do while循環語句實現

我認為用while語句好些;因為該題循環次數未知,但進入循環之前的條件明確了,用for語句或者是do while語句相比之下會比較麻煩
(四)運行下面程序,輸入1到10,結果分別是什么?為什么?
第一個程序源代碼及結果

第二個程序源代碼及結果

第一個結果原因
break;表示的是運行完上面的語句就直接跳出,所以當運行完1時,運行2的結果直接跳出沒有運行和運算,而此時s的值為1,故輸出結果是1
第二個結果原因
continue;表示不進行后面語句,又重新回去運行上面步驟了,此程序表示的是10個數中奇數的累加和,故運行結果是25
(三)實驗總結
(一)題目 求給定精度的簡單交錯序列部分和
本題要求編寫程序,計算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一項的絕對值不大於給定精度eps。
(1)流程圖:

(2)源代碼:

(3)實驗分析:
問題1:該題是奇數項為加,偶數項為減的求和方式,怎么使每一項都變號
原因:沒有靈活運用定義變量,使定義的這個變量每循環一次都變號
解決辦法:問同學,查找以前做過的題,的到解決思路,解決問題
(4)本題PTA提交列表:

(二)題目猜數字游戲
猜數字游戲是令游戲機隨機產生一個100以內的正整數,用戶輸入一個數對其進行猜測,需要你編寫程序自動對其與隨機產生的被猜數進行比較,並提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程序。程序還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,並結束程序。如果在到達N次之前,用戶輸入了一個負數,也輸出“Game Over”,並結束程序。
(1)流程圖:


(2)源代碼:


(3)實驗分析:
問題1:第一眼看到這個題完全蒙了,不知道該怎么下手
原因:沒有把大問題化為小問題,從小問題細節入手
解決辦法:問同學,上網查資料,得出解題思路
問題2:此題分情況比較多,不會進行多種情況之間的關聯
原因:邏輯思維欠缺
解決辦法:問同學,在交流群里問學長,最終得出正確結果
(4)本題PTA提交列表:

(三)題目求奇數和
本題要求計算給定的一系列正整數中奇數的和。
(1)流程圖:

(2)源代碼:

(3)實驗分析:
問題1:怎么判斷是奇數,並且使之相加,需要使用循環語句和判斷語句嵌套使用
原因:題目讓求奇數和,故需要判斷奇數
解決辦法:查找以前的課件,回顧老師講過的案例,寫出正確程序
(4)本題PTA提交列表:

(四)博客互評
評論嗶莉莉莉莉的博客
改錯題部分思路清晰,學習總結部分總結的很全面,非常值得向嗶莉莉莉莉學習,在改錯題的第二個錯誤中一次改了倆個錯誤
嗶莉莉莉莉的博客地址:http://www.cnblogs.com/bilililili/p/7842022.html
評論 一只貓の磊☀的博客
在改錯題的部分把錯誤的地方都標記出來,這種學習方法很值得學習借鑒
一只貓の磊☀的博客地址:
http://www.cnblogs.com/8426224ll/p/7847221.html
評論 移動、淫領四妓夜物的博客
該同學的博客寫的很好,改錯部分思路清晰,而且每次得分都很高,是我學習的榜樣!
