這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/ |
這個作標業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11610 |
我在這個課程的目標是 | 練習break與continue |
這個作業在那個具體方面幫助我實現目標 | 熟練break與continue,練習for語句 |
參考文獻 | c語言程序設計(第三版) |
學號 | 20208950 |
1.PTA實驗作業
1.1顯示指定范圍內的素數 (10分)
輸入整數m,將所有大於1小於整數m的素數存入所指定的數組中(數組最多只存放100個素數,超過則提示“OVERFLOW”),輸出各素數——若輸入的m≤2,則提示“NO”,程序終止。注:素數(Prime Number),亦稱質數,指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。
輸入格式:
輸入一個非0的整數。
輸出格式:
素數的輸出格式為每個素數5列寬、右對齊、每行顯示15個。
1.1.1數據處理
數據表達:定義整型變量count,i,n,m,t,把0賦值給count,輸入m的值,先用if判斷輸入值是否符合題目要求,
for與if判斷是否為素數,按格式輸出
數據處理:表達式:邏輯表達式,賦值表達式,關系表達式
流程結構:定義整型變量count,i,n,m,t,將count賦值,count=0;
輸入m的值,判斷輸入值是否在100內或小於等於2;if(m>541),if(m<=4&&m>0);符合則return 0;
不符合則for循環for(t=2;t<=m;t++);for(i=2;i<=n;i++);
count++累計輸出素數個數;
按格式輸出;
1.1.2實驗代截圖
1.1.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
568 | OVERFLOW | 輸入數據大於100 個素數 |
1 | NO | 輸入數據小於2 |
5 | 2 3 5 | 正整數5內的素數 |
1.1.4 PTA提交列表及說明
提交列表說明
1.部分正確:for(t=2;t<=m;t++),for(i=2;i<=n;i++)中2寫成1;
2.多種錯誤:if(count%15==0)中15寫成10;if(m<=4&&m>0)中4寫成2;
3.答案錯誤:if(m>541)中541寫成100;
1.2幸運彩票 (15分)
彩票的號碼有 6 位數字,若一張彩票的前 3 位上的數之和等於后 3 位上的數之和,則稱這張彩票是幸運的。本題就請你判斷給定的彩票是不是幸運的。
輸入格式:
輸入在第一行中給出一個正整數 N(≤ 100)。隨后 N 行,每行給出一張彩票的 6 位數字。
輸出格式:
對每張彩票,如果它是幸運的,就在一行中輸出 You are lucky!;否則輸出 Wish you good luck.。
1.2.1 數據處理
數據表達:定義三組整型變量a,s,d,f,g,h,i,n,輸入n的值;進入for循環,輸出asdfgh的值,if判斷asd的和是否等於fgh的和
最后輸出
數據處理:表達式:算術表達式,關系表達式,
流程結構:定義整型變量a,s,d,f,g,h,i,n;輸入n的值;
for循環for(i=1;i<=n;i++)在輸入其他六個數的值scanf("%1d%1d%1d%1d%1d%1d",&a,&s,&d,&f,&g,&h);
if判斷if(a+s+d==f+g+h),符合條件則輸出You are lucky!
不符合條件則輸出Wish you good luck.
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 233008 123456 | You are lucky! Wish you good luck. | 第一組符合要求,第二組不符合要求 |
1 346788 | Wish you good luck. | 不符合要求 |
1 146191 | You are lucky! | 符合要求 |
1.2.4 PTA提交列表及說明
提交列表說明
1.編譯錯誤:定義變量太多,某個變量寫錯
2.答案錯誤:scanf("%1d%1d%1d%1d%1d%1d",&a,&s,&d,&f,&g,&h);%1d寫成%d
2.代碼互評
同學代碼截圖
我的代碼截圖
對比:我選的是一個代碼兩個同學的做法
1.同學1代碼定義的變量少,方便,不容易混,他主要是用兩個for循環完成操作
2.同學2和我代碼不同之處是他先把0賦值給六位數,然后進行for循環
3.學習總結
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周 | 10 | 15 | 簡單知識點 | 無 |
第九周 | 12 | 34 | if-else語句 | 無 |
第十周 | 12 | 102 | 循環語句 | 復雜循環語句 |
第十一周 | 13 | 200 | 溫度轉換表,乘方表階乘 | 不太熟 |
第十二周 | 12 | 253 | 多分支結構,字符型變量 | 不熟練 |
第十三周 | 12 | 302 | switch-case | 總體還行 |
第十四周 | 10 | 419 | do-while | 復雜的不會 |
第十五周 | 12 | 511 | break與continue | 不太會 |
3.2 累積代碼行和博客字數
時間 | 字數 | 代碼行數 |
---|---|---|
第八周 | 1010 | 15 |
第九周 | 1643 | 34 |
第十周 | 2673 | 102 |
第十一周 | 3566 | 200 |
第十二周 | 3679 | 353 |
第十三周 | 4503 | 456 |
第十四周 | 5421 | 511 |
第十五周 | 7137 | 601 |
3.3 學習內容總結和感悟
3.3.1學習內容總結
3.3.2學習體會
這周學習的break和continue,在課上經過老師的指引覺得這些還可以接受,但是覺得PTA的作業中運用起來很困難
有一些不太會。多查資料多問同學,爭取弄懂所有題目。
如何跳出多重循環:
1.使用goto,它可以快速跳出多重循環
2.寫成函數return,我這次PTA作業中第一題顯示指定范圍內素數就用了return,符合條件就直接跳到return;
3.直接修改外層循環條件
4.在外層循環設置判斷條件,比如外層flag=0;內層如果符合條件則flag=1;跳出循環
5.在大循環后面判斷標志加入break。