一、PTA實驗作業
題目1:小於m的最大的10個素數
1. 本題PTA提交列表:
2. 設計思路:
定義變量 m,i,count=0;輸入m.
用while(count<10)作為循環條件,內部語句來判斷m是否是素數
輸出時printf("%6d",m);
流程圖:
3.本題調試過程碰到問題及PTA提交列表情況說明
本題提交錯誤原因皆為輸出時的格式錯誤,當時嘗試了好幾種輸出格式都不對,
后來百度了c語言輸出格式,才知道這里的輸出格式應該是%6d。
題目2:求簡單交錯序列前N項和
1. 本題PTA提交列表:
2. 設計思路:
定義變量n(輸入值),flag=1(用於改變符號),d=1(用於分母累加),i(循環條件變量),sum(計算總和)
令i=1,當i<=n時;進入循環內部:sum=flag*1.0/d+sum,flag=-flag,d=d+2,i++,跳出循環時輸出sum。
流程圖:
3.本題調試過程碰到問題及PTA提交列表情況說明
本題提交兩次錯誤原因都是因為sum的計算求和公式錯誤,
錯寫為sum=flag*i*1.0/d+sum;這樣分子每次都會加1,而實際上分子是不變的。
所以應該改為sum=flag*1.0/d+sum。
題目3:大笨鍾
1. 本題PTA提交列表:
2. 設計思路:
定義變量hh,mm,i,輸入hh,mm。
當hh為00-11點或hh為12,mm為00時,鍾不敲。
超過12點,幾點就敲幾下,利用循環結構實現,不為整點的再敲一下。
流程圖:
3.本題調試過程碰到問題及PTA提交列表情況說明
12點邊界不敲:第七行條件應該是:hh<12&&mm<=59||hh==12&&mm==0
這邊少了12點整點的判斷,其他錯誤都是因為輸出格式錯誤,%d應改為%02d。
%02d表示輸出的數字占兩個位,如果數字只有一位就在數字前面補零。
二、同學代碼結對互評
我的代碼:
互評同學代碼:
我和同學代碼不同在哪里?有哪些各自優勢?你更喜歡哪種代碼風格?
我的代碼再另設一個變量m存儲原來的a值,因為a值經過運算會改變,但原來的a值每次計算總和都需要加上去。
吳凡同學的代碼保留原來的a值,設變量x,來進行計算。我更喜歡吳凡同學的代碼,因為這樣不容易混亂,
a的值永遠是輸入的那個值。
三、截圖本周題目集的PTA最后排名
四、本周學習總結
1.你學會了什么?
1.1while循環
while(表達式)
循環體語句;
循環體內部有多條語句時,要加上大括號 。
1.2do-while循環
do{
循環體語句
}while(表達式);
1.3for循環
for(初始化表達式; 循環變量判定表達式; 循環變量修正表達式)
{
循環體語句
}
1.4利用循環結構和分支結構判斷一個數是否是素數
1.5 break語句和continue語句
break語句:1.中止循環
2.結束switch語句
continue語句:跳過循環體中continue后面的語句,繼續下一次循環。
1.6利用循環嵌套解決問題
求最值問題,求階乘,逆序,斐波那契數列,窮舉算法,解決簡單的邏輯問題。
2.本周的內容,你還不會什么?
嵌套循環的運用還不夠熟練,對於復雜一些的題目無法下手,
比如打印沙漏那題,要想很長時間才能找到循環的條件。
導致一道題花了大量時間。
3.循環結構考試總結
對於一些基本概念和計算機導論方面的知識理解不夠透徹,
之后要多看書,補一下關於這方面的知識。
題意的理解也不夠到位,還有就是考試時不夠細心。
然后編程題考慮得不夠全面,只解決了部分問題。