這個作業屬於哪個課程 |
c語言程序設計 |
這個作業要求在哪里 |
作業要求 |
這個作業的目標 |
熟悉break、continue的使用 4.4 熟悉使用循環的嵌套解決問題 |
學號 |
<20208998> |
一、PTA實驗作業。(20分/題)

1.1 題目名1:打印九九口訣表。
題目描述:

1.1.1數據處理。
數據表達:用了i,j,N這些變量;N通過用戶輸入得來; i,j,N都是整型變量。
數據處理:表達式有j*i;運用了循環嵌套。
1.1.2實驗代碼截圖。

1.1.3 造測試數據。
輸入數據 |
輸出數據 |
說明 |
4 |
1x1=1\ 1x2=2 2x2=4\ 1x3=3 2x3=6 3x3=9\ 1x4=4 2x4=8 3x4=12 4x4=16 |
打出四行以內的口訣表 |
5 |
1x1=1\ 1x2=2 2x2=4\ 1x3=3 2x3=6 3x3=9\ 1x4=4 2x4=8 3x4=12 4x4=16\ 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 |
打印五行以內的口訣表 |
2 |
1x1=1\ 1x2=2 2x2=4 |
打出兩行以內的口訣表 |
1.1.4 PTA提交列表及說明。

部分正確:沒有按題目要求等號右邊對其四位。
編譯錯誤:在循環嵌套的時候把內循環的大括號弄掉了,后面通過dev編譯查得。
編譯錯誤:輸出的公式符號沒有和后面的變量相對應。
1.2 題目2:幸運彩票。
題目描述:

1.2.1 數據處理。
數據表達:用了N,i,a,b,c,b1,c1,sum1,sum2這些變量;a通過用戶賦值得來,i是循環數據,
b,c分別是整個數的后三位與前三位,sum1,sum2分別是求和結果;都是整型。
數據處理:用了b=a%1000,c=a/1000,b1=b%10,sum1=sum1+b1,c1=c%10,c=c/10,sum2=sum2+c1,b=b/10;使用了循環嵌套。
1.2.2 實驗代碼截圖。

1.2.3 造測試數據。
輸入數據 |
輸出數據 |
說明 |
2/233008/123456 |
You are lucky!/Wish you good luck. |
第一個前三位和等於后三位和,是幸運的,第二個不是幸運彩票。 |
1/222222 |
You are lucky! |
這個數是幸運彩票。 |
4/123123/222331/567765/667766 |
You are lucky!/Wish you good luck./You are lucky!/You are lucky! |
只有第二個不是幸運彩票,其他三個數都是。 |
1.2.4 PTA提交列表及說明。

格式錯誤:輸出的答案沒有換行 ,在PTA測試區測試對比得知。
答案錯誤:一開始得到的測試用例的答案正確,但提交卻答案錯誤說明其他數據輸入得到的答案不對,
后面去dev輸入一組數據調試過程中發現幸運數據組后的求和sum1與sum2沒有歸零,導致錯誤。
二、代碼互評。(5分)
同學代碼:


自己代碼:

相比較我的缺點:一眼就可以看出我的代碼比較長,可能是我自己有可以省略的地方也加上去了。
其優點:第二個同學將六位的數直接拆分為六個數,再判斷前三位與后三位是否相等,
沒了我的那么復雜,也不需要我的后面那部分求和結果歸零化,這位同學特別有想法。
其優點:第一個同學跟我想法差不多,但他那結果歸零化直接放在第一個循環下面,而我放在了末尾,導致代碼長度加長了,這位同學的代碼很值得學習。
三、學習總結。(15分)
3.1 學習進度條。(5分)
周/日期 |
這周所花的時間 |
學到的知識 |
目前不懂的問題 |
第八周 |
7h |
總結各類符號,語句,表達式,變量等 |
語句符號會混用 |
第九周 |
9h |
分支結構雛形 |
會漏掉輸出語句 |
第十周 |
9h |
循環結構雛形 |
表達式不太會寫 |
第十一周 |
8h |
調用函數 |
不知道怎么去調用函數 |
第十二周 |
13h |
分支結構,字符型數字類型,邏輯運算符 |
多分支時不知如何分 |
第十三周 |
8h |
switch語句 |
不知道怎樣區分switch語句與if-else語句 |
第十四周 |
14h |
while語句 |
有時候用while循環與經常會出現運行超時的情況,並且也不太會改 |
第十五周 |
20h |
break,continue語句,循環嵌套 |
break與continue具體區分 |
3.2 累積代碼行和博客字數。(5分)

3.3 學習內容總結和感悟。(5分)
3.3.1 學習內容總結。
關於跳出多重循環的問題:
1.最快的方法是使用goto,可以快速跳出多重循環,但建議少使用goto語句。
2.可以寫成函數return,但函數參數傳遞很麻煩。
3.直接修改外層循環條件,當最內層得到不符合外層條件的數直接跳出循環。
4.在大循環后面判斷標志加入break。

3.3.2 學習體會。
1.本周學習了break與continue兩個語句以及循環嵌套,兩個語句都有其各自的適用性,break用於跳出本層循環,continue不執行后面的語句。
2.本周的循環嵌套在上周的PTA就用過,那時寫作業總是會出現運行超時的情況,這周深入的學習了嵌套,對於循環嵌套,需要仔細的寫每一步的代碼,因為你不知道什么時候就死循環了。
3.這次的PTA作業難度有點大,讓我感覺自身真是才學疏淺,很多問題都不知道如何解決,但總得找到解決的辦法才行,慢慢的請教同學,發現我們之間差距還是很大的。
4.代碼互評是個很好的題目,拿出自己的代碼與同學的相比較,會明顯發現自己的缺點和不足,也可以很好的學的自己不總的知識點 ,以及一些可以省略的部分。
5.調試是在做題的過程中很好的一個解決方案,當你不知道自己錯在哪,但就是錯了,這時候就需要調試過程了,調試過程觀察每一個變量的變化,很清晰的可以觀察的那部分不適用,也很快能找到解決方案,而不是固步自封的向同學求解,很多不懂的都必須自己去嘗試求解,直到自己實在不知道哪里錯了,向同學求解才是正道。
6.當在做題目實在沒思路時,可以看看同學的代碼,但不是照抄,而是理解同學的思路,再得到自己腦子的思路,再繼續把自己所想的代碼敲出來,這才是做題的正確方法。
7.在做每一個題目的時候都需要一定的過程,特別是在比較難的題時,想很久也沒有思路,我們不能急於求成,這題太難可以先放一邊,讓自己的腦海捋一捋,說不定,在某個時刻就有了思路。