C語言I博客作業09


這個作業屬於哪個課程 C語言程序設計II
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11531
這個作業的目標 熟練運用循環鑲嵌結構
這個作業在那個具體方面幫助我實現目標 函數的運用
參考文獻 C語言程序設計
你的學號 20208963

1.PTA實驗作業

1.題目一


1.1.1數據處理

 數據表達:運用整數型變量n和number;
          以及自定義函數:
                void count_sum( int a, int b )
 數據處理:運用循環語句while和for語句以及分支語句if-else  
             while(num>0){    /*循環結構while判斷整數每個位置的數;
             n+=num%10;       
             num/=10;
             }  
             if(n==5){         /*判斷是否等於5,跳出;
             return 1;         /*返回值為一;
             for(a;a<=b;a++){  /*循環統計數量;
             if (is(a)){
              count++;
              sum+=a;          /累加;

1.1.2 實驗代碼截圖

1.1.3 造實驗測試數據

輸入數據 輸出數據 說明
111 201 count = 4, sum = 506 260到201之間有4個各位數字之和是否等於5的數,且它們的和為506
260 520 count = 6, sum = 2244 260到520之間有4個各位數字之和是否等於5的數,且它們的和為2244
320 360 count = 1, sum = 320 320到360之間有4個各位數字之和是否等於5的數,且它們的和為320
444 999 count = 1, sum = 500 444到999之間有4個各位數字之和是否等於5的數,且它們的和為500

1.1.4 提交列表及說明

 1.在編譯過程中沒有考慮到A本身的數值,在循環運算時沒有算入循環體
   將 
            for(a;a<b;a++)
   改為 
            for(a;a<=b;a++)
   運算正確;
 2.在編譯過程中忘記了while的循環跳出條件,導致結果沒有跳出 
   將 
            while(num>=0)
   改為
            while(num>0)
   運算正確,編譯成功;

1.2.1數據處理

 數據表達:運用整數型變量m n c 以及數組表達序列num[10001],flag[10001],pri[10001];
 數據處理:運用自定義函數
                int get(int d)
          以及循環語句while和for還有if-else分支語句
          if(num[d] != -1) return num[d]   /*判斷數組變量是否表達;
          num[d] = -2;                     /*對數據進行賦值;
          int t = d,sum = 0;
          while(t) {                       /*循環體變量t的值;
          sum += (t % 10) * (t % 10);
          t /= 10;
          }
          t  = get(sum);                  /*賦予t新的數值;
          if(t >= 0) flag[sum] = 1;
          return num[d] = t == -2 ? t : t + 1;

1.2.2實驗代碼截圖

1.2.3造測試數據

輸入數據 輸出數據 說明
110 120 SAD 沒有幸福數
10 40 19 23 28 31 32 8 6 3 4 3 在10到40之間有5個幸福數分別為19 23 18 31 32獨立性分別為8 6 3 4 3
40 60 44 49 4 4 在40到60之間有2個幸福數分別為44 49獨立性分別為4 4
100 120 103 109 4 8 在100到120之間有2個幸福數分別為103 109獨立性分別為4 8

1.2.4提交列表及說明

1.在運用循環語句for時,忘記考慮了一種情況,
  沒有對
              for(int i = m;i <= n;i ++) 
  再次使用,導致運算結果缺少了獨立性的表達
  運用兩次后成功輸出;
2.在運用for語句鑲嵌時,將最外層的大范圍數據循環寫到了最外面,、
  導致范圍出錯
  改為
        for(int i = 2;i * i <= 10000;i ++) {
        if(pri[i]) continue;
        for(int j = i * i;j <= 10000;j += i) {
        pri[j] = 1;
  成功運行,運算正確;

2.代碼互評

同學代碼1

同學代碼2

我的代碼

 互評:1.從語句的運用方面來說,我們整體上的代碼思路是一致的,
        都運用了while循環語句來判斷數組變量,然后運用if-else
        多分支結構去輸出多種結果
      2.從代碼的運用上來說【同學代碼1】運用了插旗子標記的方法
              flag=1 flag=0
        以此來使代碼輸出的結果有兩種輸出渠道,甚是方便實用
      3.從代碼整體簡潔性上看【同學代碼2】的代碼內容較為簡潔,
        但是相對來說也容易出錯,細節較多。充分展示了該同學對
        代碼編程的掌握能力和理解能力;    

3.學習總結

周/日期 這周所花時間 代碼行 學到到的知識點 目前比較困惑的問題
第一周 6小時 200 輸出Hello World 對於循環的條件運用以及
第二周 8小時 500 數學運算 if分支語句 循環時具體的賦值狀態
第三周 15小時 900 for循環語句
第四周 18小時 700 調用自定義函數 對於自定義函數掌握不太熟練
第五周 19小時 800 邏輯運算以及if多分支結構 運用if多分支時容易搞混亂語句的結構順序
第六周 24小時 900 switch語句的多分支結構 不能熟練掌握switch語句簡化語句的以及break跳出方式
第七周 27小時 950 while語句 不能熟練運用while的判斷條件
第八周 29小時 780 鑲嵌結構 不能較好分清鑲嵌的層次和次數
第九周 32小時 800 循環多分支結構以及自定義函數 不能熟練掌握自定義函數有參和無參的相對意義

3.2 累積代碼行和博客字數

3.3 學習內容總結和感悟

3.3.2 學習體會

 1:已經學習九周目了,對於程序的編寫也越來越復雜,對於代碼的研究也越來越深入。我從中慢慢感受到了這門學科的難點和重點
 2:我已經能夠理解簡單的代碼數據類型,也能夠看懂其他人一些簡單的代碼結構,這將會對我以后自己研究代碼提供了一定的基礎
 3:我也能夠從不同的代碼編寫上找出簡便的編寫方法,研究出一套適合自己的編寫路徑和獨特的代碼編寫特點。
 4:學習完for語句鑲嵌后才發現好多東西代碼可以替換,每種代碼有着本身的特色和表達方式,不同代碼組合在一起會產生極大效果
    每種代碼的相互配合和結合都會有助於程序的編寫,以及自定義函數的使用讓編程語句更加簡潔實用;
 5: 希望以后自己能夠堅持住對代碼編寫的信心,對於代碼的運用越來越熟練。


免責聲明!

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



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