作業頭:
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11627 |
這個作業的目標 | <熟悉break、continue的使用和熟悉使用循環的嵌套解決問題。> |
學號 | <20209135> |
1.PTA作業
排名圖片:
1.1
輸入整數m,將所有大於1小於整數m的素數存入所指定的數組中(數組最多只存放100個素數,超過則提示“OVERFLOW”),輸出各素數——若輸入的m≤2,則提示“NO”,程序終止。注:素數(Prime Number),亦稱質數,指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。
輸入格式:
輸入一個非0的整數。
輸出格式:
素數的輸出格式為每個素數5列寬、右對齊、每行顯示15個。
輸入樣例:
100
輸出樣例:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
53 59 61 67 71 73 79 83 89 97
輸入樣例:
568
輸出樣例:
OVERFLOW
輸入樣例:
1
輸出樣例:
NO
1.1.1數據處理
數據表達:定義了i,n,m,count四個整形變量;m為輸入的數;count用來計算質數個數。
數據處理:對輸入數m進行判斷,m小於等於2則輸出“NO”,否則如果大於541則輸出“OVERFLOW”,否則用兩個for的循環語句嵌套;再用count計數15個數字換行;
1.1.2實驗代碼截圖
1.1.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1 | NO | 1既不是素數也不是合數 |
52 | 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 | 在3到52間有14個素數 |
569 | OVERFLOW | 取569時,素數超過了100個 |
1.1.4 PTA提交列表及說明
1.編譯錯誤:大括號太多弄混淆了;
2.部分正確:把質數2排除在外,用i=3開始循環;
3.部分正確:忘記加十五個數一行;添加一個計數變量count來調整。
1.2
在日常生活中,我們常常需要將一些大額的人民幣換算成零錢,已知我們有許多面值5元,2元和1元的人民幣。
編程實現:輸入我們需要兌換的金錢數,然后我們用這些面值5元,2元和1元的人民幣來兌換,要求每一種面值都至少有1張,然后輸出有多少種兌換方式。
輸入格式:
輸入在一行中給出待換的零錢數額(大於等於8小於等於100)
輸出格式:
每行輸出一種兌換方式,按照如下格式輸出(並且每一種面值的人民幣都是從小到大輸出):
five=五元數量,two=兩元數量,one=一元數量
輸入樣例:
在這里給出一組輸入。例如:
13
輸出樣例:
在這里給出相應的輸出。例如:
five=1,two=1,one=6
five=1,two=2,one=4
five=1,two=3,one=2
five=2,two=1,one=1
數據處理
數據表達:定義了i,n,M,money,a,b六個整型變量,M作為輸入的錢的值;i為換成5元的數,b為換算成2元的數,money為1元的數;
數據處理:對輸入的M處理,算出可以換算成多少個5元的,記為n;for循環,money為減去i個5的值;再嵌套一個for對money處理,減去b個2;剩下的money為1元的個數;
實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
13 | five=1,two=1,one=6 five=1,two=2,one=4 five=1,two=3,one=2 five=2,two=1,one=1 | 13元換成5元的2元的和1元的有四種換法 |
8 | five=1,two=1,one=1 | 13元換成5元的2元的和1元的有一種換法 |
5 | 5是小於8的 |
1.2.4 PTA提交列表及說明
段錯誤:忘記在輸入M的時候加上定位符&;
部分正確:把輸出的數弄混淆,把i打成n;
格式錯誤:忘記在輸出時,每次循環要換行;
2.代碼互評
2.1
同學的代碼截圖:
自己的代碼截圖:
1. | 該同學的代碼調用了數學函數;而我只用到了主函數 |
---|---|
2. | 該同學定義了6個整形變量;而我定義了4個變量 |
3. | 該同學是在代碼中算出第一百個素數;而我是直接運用541來進行編寫 |
2.2
同學的代碼截圖:
自己的代碼截圖:
1. | 該同學定義了四個整形變量;而我定義了六個整形變量 |
---|---|
2. | 該同學用while循環來進行處理;而我用的是兩個for的嵌套處理 |
3. | 該同學用到了goto來打破循環;而我用到的是break打破循環 |
3.學習總結
3.1學習進度條
周/日期 | 這周所花時間 | 代碼行 | 學到的知識簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周10.19~1025 | 29小時 | 690 | printf顯示,hello world類型的代碼 | 無 |
第九周10.2~11.1 | 32小時 | 780 | if,else的使用,計算華氏溫度的轉化 | 運算規則 |
第十周11.2~11.8 | 33小時 | 780 | for的循環結構的使用,數學函數 | 數學計算 |
第十一周11.9~11.15 | 35小時 | 800 | 定義函數,調用函數 | 無 |
第十二周11.16~11。22 | 37 | 860 | if /else的進一步學習 | 無 |
第十三周11.23~11.28 | 37 | 840 | 分支結構switch的學習 | switch的運用還是不太熟,需要多加練習 |
第十四周11.30~12.5 | 36 | 850 | while和do-while循環語句的運用 | while的循環運用不熟練,時常出現運行超時的問題 |
第十五周·十六周12.6~12.20 | 1660 | 熟悉break、continue的使用和熟悉使用循環的嵌套解決問題 | 循環語句的嵌套不夠熟練,對break和continue的學習不夠嚴謹 |
3.2累計代碼行和博客字數
3.3學習內容總結和感悟:
3.3.1學習內容總結:
3.3.2 學習體會
1.快期末了,隨之而來的就是要考試了,忙忙碌碌等的就是考試來檢測自己,看的就是考試中自己的發揮。
2.這些天的學習節奏說快也不快,畢竟沒有博客園,pta來煩我們,但是說滿也不慢,因為沒有C語言作業也有其他的作業,因為要考的不是只有一門C,不想掛科,所以室友和我一起在寢室又過了這么多天。
3.忙在寢室的感覺也不是很差,外面很冷,不是誰都想出去挨凍,我們在寢室學習也還是挺充實的。
4.這次我們有一周沒有作業,所以我們都只是復習了一下下。
5.為什么這周又要寫C語言作業,哎,很煩的,不喜歡被安排做作業,能不能讓自己做點想做的。每次要做這個就要花費好長時間。感覺不是充實,只有累。
6.對於如何跳出多重循環:a.設定一個停止條件;
b.break;
c.goto語句(無條件轉移語句,goto語通常與條件語句配合使用,可用來實現條件轉移, 構成循環,跳出循環體等功能。但是,在結構化程序設計中一般不推
薦使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。)