C語言博客作業--嵌套循環


一、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.本周的內容,你還不會什么?

  • 函數的調用看似簡單,但在不同程序中可以有不同的寫法,而且學習函數更重要的是對函數結構的設計;
  • 剛接觸全局變量,對如何使用全局變量還不是很熟練,還需多練習
  • 如何打印菱形圖案還是存在一些問題。


免責聲明!

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



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