一、PTA實驗作業
題目1:打印九九口訣表
1. 本題PTA提交列表
2. 設計思路
- 1.定義整型變量i,j,N;
- 2.第一層循環for(i=1;i<=N;i++) 【這一重循環用來控制乘法表的行】
{
內嵌一層循環for(j=1;j<=i;j++)
並且每次循環輸出一個式子printf("%d'%d=%-4d",j,i,i'j) 【這一重循環用來控制乘法表的列】
每結束一輪的內循環,輸出一個換行符printf("\n")
}
3.本題調試過程碰到問題及解決辦法
-
1.問題:一開始運行時並沒有大問題,乘法表能正常輸出,但乘法表中的數字位置不對
解決方法:將輸出語句中的i與j互換
-
2.問題:在輸出部分沒有格式控制符,“等號右邊數字占4位、左對齊”不清楚如何操作
以及嘗試用輸出空格控制的結果
輸出4行不明顯,輸出九行時可以明顯看到等號並未對齊
解決方法:上網查找格式控制符,得知用“-”可以讓結果右對齊,並且“%4d”可以讓數據輸出4個寬度
【以上問題不用調試就可以解決,以下是改正后的調試過程】
題目2:歌唱比賽評分系統
1. 本題PTA提交列表
2. 設計思路
- 1.定義整型變量i,n,repeat,sum,grade;//sum記錄得分之和,grade表示成績
- 2.定義浮點型變量score;//score表示
- 3.輸入repeat;
- 4.for(j=1;j<=repeat;j++)
{
定義整型變量 max=0,min=100;
給sum賦初值 sum=0;
輸入評委個數 n
for(i=1;i<=n;i++)/有幾個評委就做幾次循環/
{
輸入得分 grade
sum=sum+grade;
如果grade>max 那么max=grade;/當得分比最大值大時,重新給max賦值/
如果grade<min 那么min=grade;/當得分比最小值小時,重新給min賦值/
} - 5.score=(sum-max-min)/(n-2);
- 6.輸出最終得分 score
3.本題調試過程碰到問題及解決辦法
-
1.問題:剛開始忽略了要按repeat限制循環次數
解決方法:將最外層循環的限制條件改成j<=repeat -
2.問題:計算一次最終得分沒有再次輸入評委個數,程序錯誤
解決方法:在外層循環之內,內層循環之外加有個輸入n的語句
-
3.問題:以上問題改正后PTA顯示格式錯誤
解決方法:經同學提醒,在最后輸出結果處加上換行符。
【調試過程】
添加換行符以后,完成一次最終結果計算會自動輸出換行符
題目3:
1. 本題PTA提交列表
2. 設計思路
- 1.定義整型變量A,B;
- 2.for(A=1;A<=10;A++) //A,B一定是小於10的個位數
for(B=1;B<=10;B++)
if((10'A+2)'(7'10+B)==3848)
printf("%d2'7%d=3848",A,B); 輸出最后的式子 - 3.return 0;
3.本題調試過程碰到問題及解決辦法
本題未遇到問題
以下是調試過程:每次內循環到10時如果不滿足if語句中的條件,外循環會加一,然后繼續內循環,直到條件滿足。
二、同學代碼結對互評
1.互評同學名稱
曾文惠
2.我的代碼、互評同學代碼截圖
我的代碼
互評同學的代碼
3.我和同學代碼不同在哪里?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪里出問題。
-
我的代碼是參考課本【例4-12】使用的三重循環嵌套方法來寫,在編寫代碼時要先考慮變量大小改變的順序,但代碼語句較少,看起來整齊簡單;而同學的代碼是采用for語句與if語句結合使用的方式一步一步進行判斷,語句較多,但看代碼時更容易理解。
-
我更喜歡自己的代碼,更能鍛煉自己的思考能力,而且我自己本身在這方面比較薄弱,所以會更傾向於使用這種方法。
三、截圖本周題目集的PTA最后排名。
四、本周學習總結
1.你學會了什么?
-
對嵌套循環的理解更深刻
- 內層循環的控制條件一般以外層循環為准;
- 確定循環初始化語句的位置,混淆內外層循環的初始化易造成程序錯誤;
- 內外層循環變量不能相同;
- 多重循環中,內層循環也應該有控制循環的語句,在做PTA練習時,曾因未設置控制語句,導致程序無法停止。
-
初步學習函數
- 使用函數必須要定義,如果自定義函數在主調函數后面,那么在函數調用之前,必須加上函數原型聲明;
- 函數中,形式參數定義時,每個形參前都要寫明類型;
- 形參和實參必須一一對應,兩者數量相同,類型盡量一致;
- return語句只能返回一個值;
- 在不返回結果的函數中,void不能省略,否則函數類型被默認定義為int。
2.本周的內容,你還不會什么?
- 函數的調用看似簡單,但在不同程序中可以有不同的寫法,而且學習函數更重要的是對函數結構的設計;
- 剛接觸全局變量,對如何使用全局變量還不是很熟練,還需多練習
- 如何打印菱形圖案還是存在一些問題。