C語言I博客作業08


這個作業屬於哪個課程 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM