這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
這個作業的目標 | 用多重循環解決問題,熟悉break,continue的區別和使用 |
學號 | 20208976 |
1.PTA實驗作業(20分/題)
請再此處列出自己的排名圖片,
1.1 題目1
7-2 打印九九口訣表 (15分)
本題要求對任意給定的一位正整數N,輸出部分口訣表。
1.1.1 數據處理
數據表達:int i,j,N;
數據處理:表達式:i=1;i<=N;i++ j=1;j<=i;j++
流程控制:使用多重循環,先用for循環語句進行行的變化
在用第二重循環進行列的變化
for (i=1;i<=N;i++)
for (j=1;j<=i;j++)
1.1.2 實驗代碼截圖
1.1.3 造測試數據
1.1.4 PTA提交列表及說明
格式錯誤:錯誤點:1.第一次將輸出變成了printf ("%d*%d=%d\t",j,i,i*j);運行結果沒有顯示換行,輸出一整排。
2.第二次將輸出變成了printf (" %d * %d = %-4d",j,i,i*j);
3.第三次將輸出變成了printf ("%d*%d=%-4d",i,j,i*j);行列弄反。
解決方案:1.在百度上搜等號右邊數字占4位,左對齊是什么意思。
2.當遇到換行適宜采用 printf ("\n");
1.2 題目2
7-5 幸運彩票 (15分)
彩票的號碼有 6 位數字,若一張彩票的前 3 位上的數之和等於后 3 位上的數之和,則稱這張彩票是幸運的。本題就請你判斷給定的彩票是不是幸運的。
1.2.1 數據處理
數據表達:int N,i,a,b,c,d,e,f;
數據處理:表達式:a+b+c==d+e+f
流程結構:1.用for(i=1;i<=N;i++)進行行數的循環變化;
2. 用分支語句來判斷是否符合彩票幸運的條件,輸出相應的語句。
if (a+b+c==d+e+f) {
printf ("You are lucky!\n");
}
else {
printf ("Wish you good luck.\n");
}
1.2.2 實驗代碼截圖
1.2.3 造測試數據
1.2.4 PTA提交列表及說明
答案錯誤:錯誤點:1.當用scanf進行輸入的時候用的scanf ("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);導致運行結果一直與輸出樣例不符合。
解決方案:1.將原先的改為scanf ("%1d%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e,&f); %1d將結果進行標准輸出,輸入單個數字。
2.代碼互評(5分)
同學代碼截圖1
自己代碼截圖1
1.我的較顯簡潔,代碼行數較少。
2.該同學將3個彩票數字進行循環,x+=a%10;a/=10進行取余累加,去掉個位。是一種新的思路對我來說。
3.該同學與我用的流程控制基本相同。用的for進行循環,用if分支語句進行判斷。
同學代碼截圖2
自己代碼截圖2
1.該同學用了數組保存數字,我的略顯低級。
2.我的代碼比較簡潔,行數少。該同學用的方法略顯繁瑣。
3.初學者看我的比較易懂。
3.學習總結(15分)
3.1 學習進度條(5分)
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
1.學習循環結構,將生活中的問題用自己的所學的知識能夠將其解決,很有成就感。
2.感覺自己面對題目格式還不夠嚴謹和嚴格,需要對這方面的知識進行學習和熟記,不希望自己的格式問題影響題目的解決。
3.對自己的小細節問題需反省,經常忘了加 & ;{}等一些不應該犯的錯誤。
4.對一些作業仍然有一點陌生感;如數組的運用,需多多加強看書籍和視頻。
5.希望下一周面對作業不會處於被動狀態,能夠更加游刃有余。
6.面對老師提出的跳出多重循環問題的解決方法:
①使用goto
②寫成函數 return
③直接修改外層循環條件
④在外層循環設置判斷條件
⑤在大循環后面判斷標志加入break(資料來源於:https://www.cnblogs.com/oddcat/p/9700277.html )