這個作業屬於哪個課程 | 班級鏈接 |
---|---|
這個作業要求在哪里 | 作業要求鏈接 |
這個作業的目標 | 學習switch的使用 |
學號 | 20208942 |
這個作業在那個具體方面幫助我實現目標 | 看視頻,翻書 |
參考文獻 | 中國大學Mooch,c語言程序設計(第三版) |
1.PTA實驗作業(20分/題)
請再此處列出自己的排名圖片,如:
1.1 7-3 有多少位是7? (40分)
描述
從鍵盤讀入一個4位數的整數,求該數中有多少位是7
1.1.1數據處理
數據表達:用了變量a,其值是輸入得來的;變量b,其值是由關於a的運算后賦值而來;變量sum,其值是通過判斷后累加而來,類型都是整數型。
數據處理:表達式:b=a/1000,b=(a/100)%10,b=(a/10)%10,b=a%10,sum=sum+1;數據用到了if語句。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
4757 | 2 | 有兩個7 |
3482 | 0 | 沒有7 |
7777 | 4 | 有四個7 |
7770 | 3 | 有三個7 |
1117 | 1 | 有一個7 |
1.1.4 PTA提交列表及說明
提交列表說明:1.編譯錯誤:第22行的‘;’未打;解決方法:加上‘;’即可。
2.編譯錯誤:第9行if語句里的條件等號只打了一個;解決方法:再加一個=即可。
1.2 7-5 多分支表達-倍數問題 (50分)
鍵盤輸入1個正的整數A,如果A是3的倍數但不是5的倍數,則輸出A除以5的余數。如果A是5的倍數但是不是3的倍數,則輸出A除以3的余數。如果A既不是5的倍數但也不是3的倍數,輸出A除以15的余數
1.2.1 數據處理
數據表達:變量A,值是輸入的,類型是整數型;
流程結構:if語句。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
18 | 3 | 是3而不是5的倍數 |
5 | 2 | 是5而不是3的倍數 |
5.5 | 2 | 這是一個bug,A取整數部分的值后,是5而不是3的倍數 |
0.5 | 沒有輸出 | A為非整數 |
15 | 沒有輸出 | 既是3也是5的倍數 |
28 | 13 | 既不是3也不是5的倍數 |
3 | 3 | 這是一個bug,我也不清楚是怎么回事 |
1.2.4 PTA提交列表及說明
提交列表說明:1.前兩部分正確其實是一個問題:因為我用的是if語句,而不是if-else語句,當我用了賦值的方式重新的到A的之后,在printf里他有點找不到我的A是賦值后的A還是先前我輸入的A;解決辦法:去除賦值表達式,直接在printf里加上運算式。
2.部分正確:沒有在printf里加\n;解決方法:加上即可。
2.代碼互評(5分)
同學代碼截圖
1:
2:
自己代碼截圖
1.第一份其實思路差不多,但是她在動作語句1中直接用把它算了出來而不是讓電腦去算;
2.第二份的題目我先開始以為用switch語句會比較復雜就用了if-else語句,結果明顯這道題用switch語句更簡單。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
8/19-8/25 | 10 | 180 | C語言的發展史及特點,簡單編程 | 無 |
9/26-9/1 | 12 | 300 | 用程序語言解決一些簡單的數學運算 | scanf作為輸入函數為什么要地址符,而printf函數不要 |
10/2-10/8 | 13 | 400 | 了解簡單的循環結構 | 沙漏里的循環套循環怎么弄 |
11/10-11/15 | 12 | 350 | 自定義函數 | while循環 |
12/17-12/22 | 12 | 400 | 分支結構、符型數據類型和邏輯運算符 | 對分支結構還不能好運用 |
13/23-13/30 | 12 | 359 | switch語句 | 無 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
現在盡管在學習的過程中還是犯了不少低級錯誤,但這種錯誤逐漸在減少,我對於在寫編程前也有了自己要注意的地方,另一個就是感受到了同一個題也會有很多種解法,我原來的思維總是被困在書上,但現在我會思考用另一種方式可不可以解決這個問題,我還會翻閱更多大佬的對於同一個題目的不同看法,盡管還有很多看不懂,我也會通過他們的代碼在百度一點一點的搜索,然后積累下來。