這個作業屬於那個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-4/homework/9832 |
我在這個課程的目標是 | <開發小游戲> |
這個作業在那個具體方面幫助我實現目標 | <學會switch語句,還有定義新函數> |
參考文獻 | <c語言第二版,【美】布萊恩著> |
一.PTA實驗作業
1.1題目名: 7-3 找完數 (20 分)
所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3為6的因子。本題要求編寫程序,找出任意兩正整數m和n之間的所有完數。
輸入格式:
輸入在一行中給出2個正整數m和n(1<m≤n≤10000),中間以空格分隔。
輸出格式:
逐行輸出給定范圍內每個完數的因子累加形式的分解式,每個完數占一行,格式為“完數 = 因子1 + 因子2 + ... + 因子k”,其中完數和因子均按遞增順序給出。若區間內沒有完數,則輸出“None”。
輸入樣例:
2 30
輸出樣例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
作者: 陳建海
單位: 浙江大學
時間限制: 400 ms
內存限制: 64 MB
1.1.1數據處理
數據表達:定義了n,m,用i對這個區間數進行累加,用j對這些累加數的因子數進行累加。
數據處理:使用for-if-for-if穿插對所需數進行反復運用。
偽代碼
1.1.2實驗代碼截圖
1.1.3造測試數據
輸入數據 | 輸入數據 | 說明 |
---|---|---|
3 65 | 6=1+2+3 28=1+2+4+7+14 | 此區間有兩個完數 |
99 999 | 496=1+2+4+8+16+31+62+124+248 | 此區間有一個完數 |
465 666 | 496=1+2+4+8+16+31+62+124+248 | 此區間有一個完數 |
1.1.4PTA提交列表及說明
部分正確:只是對題目中的一點弄正確了,對於n,m的大小沒有把握出范圍。
1.2題目名: 7-6 跟奧巴馬一起畫方塊 (15 分)
美國總統奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統。2014年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!
輸入格式:
輸入在一行中給出正方形邊長N(3≤N≤21)和組成正方形邊的某種字符C,間隔一個空格。
輸出格式:
輸出由給定字符C畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的50%(四舍五入取整)。
輸入樣例:
10 a
輸出樣例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1.2.1數據處理
數據表達:先定義了n為變量,i,j為累加量,並且將題目所給的字符c也定義出來
數據處理:然后對n是偶數與基數進行不同的處理,用到for-if-for-if穿插反復進行數據處理
偽代碼
1.2.2實驗代碼截圖
1.2.3造測試數據
輸入數據 | 輸入數據 | 說明 |
---|---|---|
5 a | aaaaa | 5列3行 |
5 a | aaaaa | 5列3行 |
5 a | aaaaa | 5列3行 |
3 a | aaa | 3列2行 |
3 a | aaa | 3列2行 |
4 a | aaaa | 4列2行 |
4 a | aaaa | 4列2行 |
1.2.4 PTA提交列表及說明
1.答案錯誤:與題目意思相反所以錯誤。
2.答案錯誤:檢查不仔細又提交了。
二.代碼互評
2.1同學代碼截圖
1.
2.
自己代碼截圖
1.代碼一的比較
1.本質上沒什么不同,只是對於累加量的賦值有所不同,我的都比她的少一位,而且定義的變量字母不同。
2.運用的方法是一致的,都想到了最普通的大眾方法,使用for-for穿插運行數據。
2.代碼二的比較
- 首先定義的量不同,他的直接用一個量來除硬幣的值,而我是直接定義好了值,省去了再求的式子。
- 他還對計數的式子做了一個定義用來承載結果,最后格式也有所不同,有些代碼已不再一行的地方我並沒有再打空格。
三.學習總結
3.1學習進條度
周/日 | 這周所花時間 | 代碼行 | 學到的知識簡介 | 比較迷惑的問題 |
---|---|---|---|---|
第四周 | 10 | 60 | ||
第五周 | 15 | 70 | ||
第六周 | 20 | 100 | ||
第七周 | 25 | 130 | ||
第八周 | 30 | 150 | 學會打累加 | 有時候打到的知識簡介 |
第九周 | 35 | 180 | 學習了定義新函數 | 對於新函數的定義不是很理解 |
第十周 | 15 | 256 | 學了if-else語句 | 不會靈活應用if-else語句 |
第十一周 | 8 | 342 | 學了switch語句 | 不會運用switch語句 |
第十二周 | 7 | 435 | 學會了do-while語句 | 對於do-while語句的靈活運用 |
第十三周 | 5 | 324 | 學會了怎樣使用穿插的循壞語句 | 對於題目的信息分解不行 |
3.2學習內容總結和感悟
3.2.1內容總結
3.2.2感悟
自我感覺越來越熟悉代碼的結構與基礎了,能夠自己打出難度不是很大的代碼了。
這讓我信心大增,不在是個什么都不會的人了,所以我對以前七八九個小時的敲代碼取得如今的一點點小進步而感到值得。
作業雖多但是真的很快樂。
作業量越來越多且難度越來越大,但現在效率有明顯的提升。
我希望學習到更多的語句,以及很好玩的代碼,我很喜歡打代碼的感覺。
我相信自己以后會成功的開發出小游戲程序。