這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
這個作業的目標 | 掌握各種類型函數的定義、調用和申明,熟悉變量的作用域、生存周期和存儲類型 |
學號 | 20208987 |
1.PTA實驗作業(20分/題)
1.1. 統計各位數字之和是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 造測試數據
1.1.4 PTA提交列表及說明
答案錯誤:在VS里面沒有將題目的格式處理好就提交了。
編譯錯誤:在while語句中,循環時括號錯誤。
1.2統計某類完全平方數 (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 造測試數據
1.2.4 PTA提交列表及說明
部分正確:沒有將a[j]=M加上去,開始以為沒必要,其實這是要用來儲存最后一位數的
部分正確:開始時a[j++]是a[j]沒有用來記錄,儲存數的作用。
2.代碼互評(5分)
同學代碼截圖1.
同學代碼截圖2.
自己代碼截圖:
1.第一位同學主要的區別還是同學用了函數,而我是用的while循環來輸入棱形的組數,我的更加簡單,方便。同學的更高層次,可以應對更多的情況。
2.總的棱形的輸出都是差不多的,都用了細節getchar()消掉最后的回車。
3.第二位同學的將一些小細節,一些轉換直接套用,我的是分開要一步步來,我的更詳細,同學的更熟練。
3.學習總結(15分)
3.1 學習進度條(5分)
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
本周學習了各種類型函數的定義、調用和申明,以及變量的作用域、生存周期和存儲類型
3.3.2 學習體會
1.這次pta作業太難了,一個人自己去做簡直難的懷疑人生.
2.通過自己的摸索雖然不能完全搞懂,但收獲還是挺大滴嘛.
3.遇到難題一定要冷靜冷靜,克服這種問題.提高思維能力.
4.在做完題目后還是應該多找些方法,看是否還有別的解題過程.
5.和他人交流也是很重要的,加油少年.