C語言I博客作業09
作業頭
這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
這個作業屬於那個課程 | C語言程序設計II |
我在這個課程的目標是 | 深入函數 |
這個作業在那個具體方面幫助我實現目標 | 進一步熟悉函數的使用 |
參考文獻 | c語言程序設計(第三版) |
學號 | 20208955 |
二、PTA實驗作業(20分/題)
排名圖片
1.1
第一題
6-2 統計各位數字之和是5的數 (20分)
本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。
1.1.1
數據處理
數據表達:使用了變量 函數整型a,b;函數整型number;整型n,s,a,c,sum;n是轉換代替mumer;s是判斷個個位數之和是否為5;a是各個位數的數值;c是給定范圍內符合要求的個數;sum是給定范圍內符合要求的個數之和。
數據處理: 表達式: a = n % 10,n = n / 10;
流程結構:一共使用了三個函數,一個主函數,兩個副函數,兩個副函數的主要作用分別是:
‘int is( int number );’:判斷number的各位數字之和是否等於5,是則返回1,否則返回0。
‘void count_sum( int a, int b );’:利用函數is統計給定區間[a, b]內有多少個滿足上述要求(即令is返回1)的整數,並計算這些整數的和。
1.1.2
實驗代碼截圖
1.1.3
造測試數據
數據 | 結果 | 說明 |
---|---|---|
0 23 | 23 is counted.\n c=3,sum=42 | 從0開始 |
2 4 | c=0,sum=0 | 沒有符合要求的可能 |
103 105 | c=1,sum=104 | 只有104一個符合 |
1.1.4
PTA提交列表及說明
說明
答案錯誤:在VS里面沒有將題目的格式處理好就提交了。
編譯錯誤:在while語句中,循環時括號錯誤。
1.2
第二題
6-1 統計某類完全平方數 (20分)
本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。
1.2.1
數據處理
數據表達:定義了 整型變量 M,i,j,數組a[10],x,m,n;M用來轉換變量N即輸入的數,i是多余的(提交時忘了刪),j是用來初始化並與a[10]記錄有多少余數的,x轉換sqrt(N),n,m是循環判斷有沒有相同的的位數。
數據處理: 表達式:a[j++]=M%10,M=M/10,x*x==N;
流程結構:先做好前期准備,x是N開平方后的值。再循環記錄各位數。再循環判斷是否位數有相同的。最后再判斷可不可以開平方。
1.2.2
實驗代碼截圖
1.2.3
造測試數據
數據 | 結果 | 說明 |
---|---|---|
143 145 | cnt=1 | 只有一個符合條件 |
0 1 | 0 | 沒有符合條件的 |
1 100 | cnt=1 | 正常數值 |
1.2.4
PTA提交列表及說明
說明
部分正確:沒有將a[j]=M加上去,開始以為沒必要,其實這是要用來儲存最后一位數的
部分正確:開始時a[j++]是a[j]沒有用來記錄,儲存數的作用。
三、代碼互評
同學代碼
第一位
第二位
自己
第一位
-
主要的區別還是同學用了函數,而我是用的while循環來輸入棱形的組數,我的更加簡單,方便。同學的更高層次,可以應對更多的情況。
-
總的棱形的輸出都是差不多的。
-
都用了細節getchar()消掉最后的回車。
第二位
-
本質的思路與想法沒有太大的差別。
-
同學的將一些小細節,一些轉換直接套用,我的是分開要一步步來,我的更詳細,同學的更熟練。
3.1學習總結(15分)
3.1 學習進度條(5分
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周 | 6小時 | 262 | 怎么輸出內容 | 一些結構的定義 |
第九周 | 8小時 | 670 | 開始輸入及套用公式 | 字符的一些定義 |
第十周 | 24小時 | 593 | 數組 | 迷糊流程,字符串,以及對題目的處理 |
第十一周 | 30小時 | 1034 | 函數 | 宏定義,對題目不能很好的反應過來 |
第十二周 | 32小時 | 2431 | EOF等一些基本知識,接觸到了c++ | 對於一些函數還不能很好的運用 |
第十三周 | 32小時 | 2742 | switch的靈活運用 | 用函數去表達素數 |
第十四周 | 28小時 | 2324 | which,do while 循環 | 將之前所學的知識結合起來運用,循環會亂 |
第十五周 | 28小時 | 2453 | 熟悉break、continue的使用 | 循環邏輯有點混亂 |
第十六周 | 33小時 | 2489 | 函數返回值 | 對於函數還不夠熟練,沒有經常性的用到 |
3.2累積代碼行和博客字數(5分)
時間 | 博客字數 | 代碼行數 |
---|---|---|
第八周 | 585 | 262 |
第九周 | 1031 | 670 |
第十周 | 1289 | 593 |
第十一周 | 1413 | 1034 |
第十二周 | 1664 | 2431 |
第十三周 | 1998 | 2742 |
第十四周 | 2453 | 2324 |
第十五周 | 1902 | 2453 |
第十六周 | 2017 | 2489 |
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會