| 這個作業屬於那個課程 | C語言程序設計II |
|---|---|
| 這個作業要求在哪里 | C語言I作業008 |
| 我在這個課程的目標是 | 對於學過的內容,可以很熟練的進行編程,而且還可以看懂代碼的每一步代表着什么意思,訓練自己找錯的能力 |
| 這個作業在那個具體方面幫助我實現目標 | 做PTA作業可以鞏固學的知識,並且找到自己不足。而且在代碼互評環節可以學習到別人的長處 |
| 參考文獻 | 百度、《C Primer Plus》第六版,C語言程序設計、PTA常見問題解答 |
1.PTA實驗作業

1.1題目名1
輸入一組二進制字符,輸出其對應的十進制數。當輸入回車鍵時,輸入結束。若輸入非二進制字符,輸出error input!
1.1.1數據處理
數據表達:運用了字符型數據,定義了number變量,是整型變量
數據處理:

1.1.2實驗代碼截圖

1.1.3造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 11111111 | 255 | 例題數據 |
| 34 | error input! | 例題數據 |
| 110111101 | 455 | 含有1和0的數字 |
| 456 | error input! | 測試不是二進制的數字 |
| 1110 | 14 | 隨機測試的一個二進制的數字 |
1.1.4PTA提交列表及說明

1.部分正確:用vs測試,發現如果滿足二進制,則答案是正確的;但如果不滿足二進制,就會出現一個情況:如果是輸入34,輸出結果是error input!4,弄了很久,在input后面總會有個數字,我知道哪一句有問題,但是我卻不知道怎么去改,問了同學,說要用字符型數據(思路見上面偽代碼)
1.2 題目名2
這里所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程序要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然后,經過計算,輸出兩個數字:第一個數字s,表示x乘以s是一個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
1.2.1 數據處理
數據表達:定義了3個變量:x、s、count,都是整型變量,並且給它們都賦值為0
數據處理:

1.2.2 實驗代碼截圖

1.2.3 造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 31 | 3584229390681 15 | 例題上的數據 |
| 19 | 5847953216374269 18 | 隨機輸入的數字進行測驗 |
| 29 | 38314176245210727969348659 28 | 隨機輸入的數字進行測驗 |
| 15 | 一直出現407407 | 輸入一個位數是5的數字進行測驗 |
1.2.4 PTA提交列表及說明

1-3.編譯錯誤:前面兩次以為是修改的都是錯誤的,其實我真正錯的地方是16行count打成了conut,導致了編譯錯誤(因為這道題是挑戰題,所以先在vs上測試的,但也做了好久,真的越搞越崩潰)
2.代碼互評
2.1同學代碼截圖(計科2班高茗同學)

2.2自己代碼截圖

2.3比較結果
1.我們的方式不太一樣,我是定義了變量people,但是沒有給這個變量賦值,而她的是給變量先賦值1,然后再慢慢累加,直到加到符合條件為止
2.這道題比較簡單,所以不同點一般都只是計算的方式不一樣,我覺得我和她的方法都可以,看自己的習慣吧
2.4同學代碼截圖(計科3班李雙同學)

2.5自己代碼截圖

2.6比較結果
1.我們采用的計算方法不一樣,她采用的方法是看時間是否為單數或者雙數,如果是單數,蝸牛是向上爬的;如果是雙數,蝸牛是向下划的。就這樣一直計算,直到爬出的距離超過井深
2.我采用的是逆向思維,從井口到井底,運動一次,加一次時間,我就沒有分單數和雙數。這個看個人的思維,思維不一樣,算法也不一樣,我覺得都很贊
3.學習總結
3.1 學習進度條(5分)
| 周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
|---|---|---|---|---|
| 第一周(9.19-3.27) | 6天 | 26行 | Hello world編程和Markdown語法 | 現在沒有疑惑 |
| 第二周(9.25-10.4) | 4天 | 45行 | 華氏度與攝氏度的轉換 | 對於變量的類型還不是很懂 |
| 第三周(10.8-10.11) | 3天 | 大約100行左右 | 計算分段函數和學習if-else語句 | 對於if-else語句還是不那么熟練 |
| 第四周(10.15-10.17) | 3天 | 大約75行左右 | for循環語句和指定次數的循環程序設計 | 關於指定次數的循環程序設計還不是很清楚 |
| 第五周(10.22-10.25) | 4天 | 大約110行左右 | 使用自定義函數來編程和生成乘方表和階乘表 | 關於自定義函數的編程的細節還是不太懂 |
| 第六周(10.29-11.1) | 4天 | 大約120行左右 | 運用分支結構編程、字符型數據、邏輯運算符 | 對於邏輯運算符還不是很清楚,有一點點懵 |
| 第七周(11.6-11.8) | 3天 | 大約150行左右 | 運用switch語句來編程 | 現在感覺沒有什么疑惑點,可能還沒發現 |
| 第八周(11.12-11.15) | 3天 | 大約200行左右 | 進一步學習循環結構,學習了while和do-while語句 | 目前還沒有發現什么疑惑點 |
3.2 累積代碼行和博客字數(5分)

3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結




3.3.2 學習體會
這一周我們進一步學習了循環結構,學習了while和do-while語句,while和for循環語句不同點在於在面對不知道循環的具體次數時,用while語句就更好;而do-while語句與while語句的最大區別是do-while的循環體至少無條件執行一次。再說說PTA作業吧,第1、2、4題還好,第三題要用到字符型數據,所以這個讓我琢磨了好久,又是看書,又是查詢百度,又問同學,才把它弄出來,但是自己還一直在慢慢琢磨,希望能完全吃透。學習之路還很長,加油吧!(老師,那個代碼截圖必須要有名字標識,但是那個圖片太大了,不太美觀呀!)
