問題 | 答案 |
---|---|
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127 |
我在這個課程的目標是 | 熟練用C語言編程 |
這個作業在那個具體方面幫助我實現目標 | 各種類型函數的定義、調用和申明,熟悉變量的作用域、生存周期和存儲類型 |
參考文獻 | 百度 |
四、作業格式
1.PTA實驗作業(20分/題)
請再此處列出自己的排名圖片,如:
從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分),內容要求如下:
1.1 題目名16-1 統計某類完全平方數 (20分)
本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。
函數接口定義:
int IsTheNumber ( const int N );
其中N是用戶傳入的參數。如果N滿足條件,則該函數必須返回1,否則返回0。
裁判測試程序樣例:
include <stdio.h>
include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
1.1.1數據處理
介紹實現本題過程中,你的數據表達、數據處理是怎么做的。注意:請務必按照以下方式書寫。
數據表達:用了哪些變量,這些變量的值是怎么來的,類型是什么。
數據處理:數據用到的表達式和流程結構。請用偽代碼表示。
數據表達:變量n i k N,這些變量的值是由int定義來的,類型是整點型變量。
數據處理:表達式 m = i * i;m == N int k = 0; k < div; k++n % 10 == k if-else while for循環
偽代碼
先把接頭打出
然后給出所有變量。
再根據各個條件,通過if while for語句。判定條件滿足與否
然后用多個if循環對條件進行細分。
然后再用return 1 再次循環返回上層。
最后再輸出格式。
最后在return 0。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入 | 輸出 | 說明 |
---|---|---|
105 500 | cnt = 6 | 用戶輸入的數中有6個滿足條件 |
11 12 | cnt = 0 | 用戶輸入的數中有0個滿足條件 |
16 100 | cnt = 0 | 用戶輸入的數中有1個滿足條件 |
1.1.4 PTA提交列表及說明
提交列表說明:有部分錯誤是在c++中,並在此一一列出。
答案錯誤 不理解該輸出的順序。最終在最后return 0這里出現了問題。我本想為return 1。
編譯錯誤 在接頭定義時出現問題。與上面的定義不符。大小寫問題。
答案錯誤 k的起始值定義錯誤。
答案錯誤 本來需要取余的。結果把百分號寫成了&
部分錯誤 在最后一個if中出現了問題 ==少寫了一個=
1.2 題目2
6-2 統計各位數字之和是5的數 (20分)
本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。
函數接口定義:
int is( int number );
void count_sum( int a, int b );
1.2.1 數據處理
數據表達:用了哪些變量,這些變量的值是怎么來的,類型是什么。
數據處理:數據用到的表達式和流程結構。請用偽代碼表示。
數據表達:用了x i b a sum number變量,這些變量由int定義來的,類型是整點型。
數據處理:數據用到的表達式 sum += x % 10;x /= 10;i <= b; i++ count++;sum += i;流程結構為if-else for while循環結構
偽代碼
通過接口處進行接int is (int number)
根據條件用while判斷滿足條件的數
然后再用for循環,把每一個數都判斷出來,最后儲存。
然后在輸出格式。
最后返回上層打印出來。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入 | 輸出 | 說明 |
---|---|---|
104 999 | ![]() |
有15個滿足條件的數 |
100 1000 | ![]() |
有15個滿足條件的數 |
1 1000 | ![]() |
有21個滿足條件的數 |
1.2.4 PTA提交列表及說明
特別說明,有部分錯誤在c++中,並在此一一列出。
編譯錯誤 While循環語句中出現問題。x/=10錯誤。
答案錯誤 也同樣是在個這個while循環中。本來是要寫return 1的寫為return 0了。不明確循環的目的。
答案錯誤 count自增時出現問題。后面的分號忘記打了。
編譯錯誤 Print最后輸出時少了一個分號。
2.代碼互評(5分)
找2份同學代碼,和自己代碼比較,建議互評代碼盡量找代碼風格差異較大。
同學代碼截圖
自己代碼截圖
if else for循環語句中條件不同。在比較時輸出也不同。
在判斷一個整數是完全平方數時。判斷條件的順序不盡相同。
for (int k = 0; k < div; k++)
同學代碼截圖
自己代碼截圖
在這個for語句中。在對i進行賦值時,出現了不同。
在寫sum=sum+i時其實意義是相同的。也並沒有什么更高級之分。不過也就那樣。
3.學習總結(15分)
3.1 學習進度條(5分)
日期 | 這周所花時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的地方 |
---|---|---|---|---|
9/16~9/22 | 兩天 | 30 | 在屏幕上顯示hello Word! | 編程操作 |
9/23~9/30 | 兩天半 | 100 | 求華氏溫度對應的攝氏溫度 | 運算符不理解 |
10/7~10/12 | 四天 | 240 | 計算分段函數 | 不理解為什么要那樣打,有些東西代表的含義 |
10/14~10/18 | 8個小時 | 310 | 使用for循環語句實現指定次數的循環程序設計 | 還是有很多代碼,不知道什么意思,為什么要這么打? |
10/23~10/26 | 10小時 | 420 | 生成乘方表和階乘表,對函數的定義和調用有初步的認識,能模仿編程 | 部分運算符的運算順序。 |
10/28~11/02 | 八個小時 | 640 | 熟悉分支結構,字符型數據類型和邏輯運算符 | 分支結構的類型。運算邏輯符的運算順序 |
11/5~11/8 | 6個小時 | 740 | 寫偽代碼 使用switch語句 | 部分使用條件 |
11/12~11/16 | 8小時 | 830 | 使用while和do-while結構解決問題 | 嵌套關系與順序 |
11/20~11/22 | 6小時 | 1020 | 熟悉使用循環的嵌套解決問題 | 嵌套關系與順序 |
11/27~11/29 | 6小時 | 1200 | 能夠根據實際情況,選擇合適的算法、合理的循環結構,熟練的編寫程序 | 不知如何選擇合適的算法,部分算法不理解 |
12/4~12/6 | 5小時 | 1304 | 掌握各種類型函數的定義、調用和申明,熟悉變量的作用域、生存周期和存儲類型 | 不怎么熟悉變量的作用域、生存周期和存儲類型 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會||
我真的不知道說什么好了。我懂得C語言之所以衰敗的緣由了。沉默和沉默呵,不在沉默中爆發,就在沉默中滅亡。總需要人在前面做鋪墊。才能成就美好的未來。為了使老師能夠更好地了解我們,我們必須給他一點顏色。老師你真的把我們當神仙了是嗎?您真的認為我們這么優秀嗎?如果你真的這么想的話,那你就大錯特錯了。我在這里僅代表我個人,讓你能夠更加清楚的了解到我們。其實我們就是菜鳥。可能連菜鳥都算不上我。好的,我的學習體會就這么多了。