這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
這個作業的目標 | 回顧總結之前所學知識,學好c語言的基礎知識,為之后能更好的學習相關專業知識 |
學號 | 20208966 |
1.PTA實驗作業(20分/題)
1.1 題目1
本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。
1.1.1 數據處理
數據表達:定義了整型b接收各位數,將N賦值給n,數組c用來統計,將開平方數賦值給a
數據處理:利用if判斷是否完全平方和while循環將各位數分開並統計
表達式:int a=sqrt(n);
b=n%10;
c[b]++;
if(c[b]==2)
return 1;
n/=10;
1.1.2 實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
122 143 | cnt = 0 | 無完全平方數 |
145 170 | cnt = 0 | 有一位完全平方數但無至少兩位數相同(169) |
1.1.4 PTA提交列表及說明
編譯錯誤:定義const常量N具有不可變性,如果不用一個變量接收N,將會顯示assignment of read-only parameter ‘N’
1.2 題目2
本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。
1.2.1 數據處理
數據表達: 在第一個函數里定義了整型a用來接收個位數,s用來接收各位數的和;第二個函數里定義了整型count統計有多少個滿足條件的數,sum接收滿足條件數的總和
數據處理:第一個函數里用while循環將個位數加起來再用if判斷是否和為5;第二個函數用for循環統計個數和總和
表達式:while(number>0)
{
a=number%10;
number/=10;
s+=a;
}
for(int i=a;i<=b;i++)
{
if(is(i))
{
count++;
sum+=i;
}
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
14 23 | 14 is counted. 23 is counted. count = 2, sum = 37 | 只有14和23符合條件 |
14 22 | 14 is counted. count = 1, sum = 14 | 區間內14滿足條件 |
1.2.4 PTA提交列表及說明
答案錯誤:最后輸出結果count和sum之間沒有逗號隔開
2.代碼互評(5分)
同學代碼截圖
1.
2.
自己代碼截圖
對比:第一位同學與我的基本思路相同,他還使用了flag標識並作為返回值
第二位同學的代碼運用了switch-case,更為詳細也容易讓人理解
3.學習總結(15分)
3.1 學習進度條(5分)
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
1.這一周感覺過的比較忙碌,一周下來收獲東西較少,復習偏多,東忙西忙最后感覺什么都沒有做。
2.這個學期也接近尾聲了,前一段時間對數學和英語沒有太上心,后面復習要合理安排各科之間學習時間。
3.c語言也學了這么久了,但還是感覺自己只摸到了一點皮毛而已,希望能在后面的時間里能順利入門。