C語言第四次作業-嵌套作業


一.PTA實驗作業

題目1:7-4 換硬幣

1. 本題PTA提交列表

2.設計思路

  • 第一:定義三個整型變量f,t,o,分別代表五分,兩分,一分的數量
  • 第二:輸入待換金額x
  • 第三:令f=x/5;t=x/2;o=x;(即各自等於它們有可能的最大值)
  • 第四:進入for循環,先固定一個數如f,然后從大到小減小改變第二個數如t,每當t改變一次,o改變一輪,即從x到0;
  • 第五:這樣可以對所有可能出現的情況進行判斷:在每個循環里當5f+2t+o)==x時,輸出printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",f,t,o,f+t+o);並換行
  • 第六:在每一次輸出結果時,令count--則可以統計換法數
  • 第七:輸出count

3.本題調試過程中碰到的問題以及解決方案

(1)

  • 錯誤:答案錯誤,題目要求要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。而我恰巧相反從小到大
  • 解決方案:改變for循環條件,如下圖:

(2):

  • 錯誤:部分錯誤,如下圖一
    (1)發現count=2,而程序運行只顯示了一種換法,發現在判斷改變變量f,t后,是否符合5f+2t+o)==x后沒有輸出語句,即f,t發生改變后得到的換法沒有輸出
    (2)發現count的數量多一,發現算法包括o=0的情況
  • 解決方案:
    (1)在每一條判斷語句后增加一條輸出語句
    (2)改變變量o的for循環條件

題目2: 7-7 歌唱比賽評分系統

1. 本題PTA提交列表

2.設計思路

  • 第一,定義repeat=0,n=0,score,max,min,j=0,i=0,inter=0,分別表示評分的選手數量,評委數,分數,最高分,最低分,循環變量,中間存放變量
  • 第二,輸入repret
  • 第三,令i=0,輸入評委數,輸入分數,令最大值等於輸入的分數,
  • 第四,再輸入一個分數,如果大於之前的最大值,則令最大值等於它,最小值等於之前的最大值,
  • 第五,否則令最小值等於它
  • 第六,令j=0,再輸入一個分數,
  • 第七,如果分數大於最大值,則令中間變量inter等於最大值,最大值等於分數,分數等於中間值(即最大值與分數交換)j=j-1
  • 第八,如果小於最小值,則進行第七一樣的操作,使得最小值與分數交換,j=j-1
  • 第九,分數總和total+=score
  • 第十,重復步驟六,直到j>=n-2
  • 第十一,輸出total

3.本題調試過程中碰到的問題以及解決方案

(1)

  • 錯誤:答案錯誤,沒有考慮到repeat
  • 解決方案“在輸入repeat后f增加or(i=0;i<repeat;i++)循環

題目3: 7-6 猜算式?2*7?=3848中的數字(10 分)

算式:?2*7?=3848中缺少一個十位數和一個個位數。編程求出使該算式成立時的這兩個數,並輸出正確的算式。

1. 本題PTA提交列表

2.設計思路

  • 一,算法定義三個變量A,B,C分別表示個位數十位數,和它們的乘積
  • 二,如果(A10+2)(70+B)==3848,則輸出結果,結束程序
  • 三,如果沒有則令A加一,B等於零,
  • 四,在A的每一次改變時,B進行循環即從0到1進行判斷
  • 五,如果(A10+2)(70+B)==3848,則結束程序,如果沒有則重復步驟三
  • 六,令C等於((A10+2)(70+B)
  • 七,輸出"(%d*%d=%d",A,B,C)

3.本題調試過程中碰到的問題以及解決方案

  • 當n=9時跳出循環

  • 每一次A改變,B都進行一次從1到9的循環

  • 當(A10+2)(70+B)==3848時跳出循環

二、同學代碼結對互評

1.互評同學名稱:王宵瑩

2.我的代碼、互評同學代碼截圖

  • 我的代碼

  • 王宵瑩的代碼

3.我和同學代碼不同在哪里?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪里出問題。

  • 總體看來,我與王宵瑩的思路是一樣的,都是讓各個硬幣的數量從可能的最大數進行循環減小直到符合條件結束輸出
  • (1)不同:
  • 王宵瑩:她主要采用了for循環語句
  • 我:也是使用了for循環語句但是多了if語句進行判斷
  • (2)優勢
  • 王宵瑩:更為簡潔,代碼行數只有我的一半。
  • 我:思路條理更加清晰。
  • (3)
    我更喜歡王宵瑩的代碼風格,因為我們的思路是差不多的,但是她的要簡潔的多。

三、截圖本周題目集的PTA最后排名

四,本周的學習總結

1.你學會了什么?

-(1)學會了使用嵌套循環
-(2)有自己調了好幾道題目,找到關於循環變量的問題,關於格式的問題,有時可能只是一個回車鍵

  • (3)在不斷的失敗與再失敗中學會了耐心

2.本周的內容你還不會什么?

-(1)還是不會用使用電腦的思維方式,一道題目要思考好久
-(2)嵌套循環的部分題目還不會,聽完老師講后我還是不會,比如7-3 編程打印空心字符菱形還有7-5 梅森數
-(3)對於函數的運用

3.你碰到什么困難,打算如何解決?

-(1)看到題目后無法找到入手點,往往調試了好幾個小時都得不出正確的答案,或者調試了好久后改變思路從頭再來

  • 解決方案 :如果實在想不出思路,就上網百度或者向學長學姐請教,理解了正確的思路后自己再敲一遍代碼

-(2)沒有時間在電腦上做題
-解決方案 :看了題目后見縫插針地思考題目,在本子上記錄下做題思路,回到宿舍后再在電腦上實驗調試

  • (3)有些之前的題目過段時間就不會做了
  • 解決方案:對於之前的題目要注意復習,當然在做的時候就要認真做,留下印象,不要做無用功


免責聲明!

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



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