| 問題 | 答案 |
|---|---|
| 這個作業屬於那個課程 | C語言程序設計II |
| 這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10098 |
| 我在這個課程的目標是 | 精通c語言,深入了解C語言的編程,學會自己編寫程序 |
| 這個作業在那個具體方面幫助我實現目標 | 對循環結構有了更深入了解,復習了字符常數的定義以及字符型函數的輸出和輸入 |
| 參考文獻 | C語言程序設計Ⅰ |
1.PTA實驗作業

1.1 同構數
找出1~1000之間的全部同構數。
輸出格式:
在一行中輸出所有滿足條件的同構數,每個數輸出占6列。沒有其它任何附加格式和字符。
1.1.1數據處理
數據表達:定義了整形變量i,n,x,y;並把n初始化為1000;
數據處理:
int i,n=1000,x,y;//定義變量
for i ←1to1000;
do x←pow(i,2); y←x%10;
if(i<10)
then[if(y==i)then[輸出i]]
else if(i<100)
then[x←pow(i,2);y←x%100;if(y==i) then[輸出i]]
end
1.1.2實驗代碼截圖

1.1.3造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 沒有 | 1 5 6 25 76 376 625 | 是1~1000之間所有的同構數 |
1.1.4PTA提交列表及說明

提交列表說明
* 1.格式錯誤:每個數輸出占6列這里錯了,開始時我把輸出的,每個數前面都打了六個空格。格式錯誤。
* 2.格式錯誤:我在第二個和第三個輸出前面打了四個空格。還是格式錯誤。最后在第三個輸出前面打了三個空格。
1.2梅森數
本題要求編寫程序,對任一正整數n(n<20),輸出所有不超過pow(2,n)-1的梅森數。
輸入格式:
輸入在一行中給出正整數n(n<20)。
輸出格式:
按從小到大的順序輸出所有不超過pow(2,n)-1的梅森數,每行一個。如果完全沒有,則輸出“None”。
1.2.1數據處理
數據表達:定義了整形變量count,flag,n,i,j,sum,x;並把flag和count分別賦值為1和0。
數據處理:
int count=0,flag=1,n,i,j,sum,x;//定義變量
輸入n;
for i 1 to n;
flag←1;
sum←pow(2,i)-1;
for j 2 to sum/2;
x←sum%j;
if(x==0)
then[flag←0;跳出循環]
end
if(flag==1)
then[輸出sum;count++;]
end
if(count==0)
then[輸出None]
1.2.2實驗代碼截圖

1.2.3造測試數據
| 輸入數據 | 輸出數據 | 說明 |
|---|---|---|
| 6 | ![]() |
有3個梅森數 |
| 8 | ![]() |
有4個梅森數 |
| 14 | ![]() |
有5個梅森數 |
1.2.4PTA提交列表及說明
提交列表說明

1.作業在編譯器上運行過
2代碼互評
同學代碼截圖


自己代碼截圖

我代碼的思路和兩個同學代碼的思路在判斷是否是梅森數上有點不同,我的是用flag==1來判斷是否為梅森數。而同學的是當第二次的循環變量大於pow(2,i),之后的所有數都輸出。我覺得我的代碼比較容易讓人理解,當別人第一次讀同學的代碼,可能有點理解不了。
3.學習總結
3.1學習進度條
| 周/日期 | 這周所花時間 | 代碼行 | 學到的知識點簡介 | 此前比較迷茫的問題 |
|---|---|---|---|---|
| 第一周 | 1天 | 24行 | 學會了一點printf()語句,知道主函數 | \n的用法 |
| 第二周 | 4天 | 23行 | 學會計算攝氏溫度與華氏溫度的轉化 | =兩邊打空格 |
| 第三周 | 2天 | 62行 | 學會一點scanf()語句,定義變量,if-else結構 | 很多地方不知道為什么要打空格 |
| 第四周 | 1天 | 145行 | 學會了for()語句 | 目前沒有 |
| 第五周 | 1天 | 142行 | 對函數的定義和調用有初步的認識 | 在函數的定義中是否可以輸入形參的值 |
| 第六周 | 2天 | 132行 | 加深對if-else分支結構的認識,字符型變量和常量的定義以及字符型輸入輸出函數 | 字符型數據的輸出和輸入不懂 |
| 第七周 | 1天 | 206行 | 學會switch語句,用switch語句處理多分支選擇問題 | 在編譯器上打代碼時,編譯器沒有提示錯誤,但是答案錯了。后來才知道case后面要打空格再打常數表達式 |
| 第八周 | 1天 | 125行 | 學習了while( )循環語句和do{ }while( )循環結構 | 相對於for()循環和while( )循環,do{ }while()還是運用的不太熟練 |
| 第九周 | 1天 | 198行 | 學習了for( )語句的嵌套以及break語句和continue語句 | 運用不是很熟練,還需要多練 |
| 第十周 | 1天 | 208行 | 復習了字符常數的定義,字符型函數的輸出和輸入以及循環結構 | 對於字符的輸出和輸入有待提高 |
3.2累積代碼行和博客字數

3.3學習內容總結和感悟
3.3.1學習內容總結

3.3.2學習體會
* 1.這周復習了循環結構,我發現我把那個循環結構的循環條件弄混淆的, 還需要多看看前面學習的內容。
* 2.在做作業的過程中,也復習了字符常數的定義以及字符型函數的輸出和輸入,對於字符的一些知識還不是特別熟練,還要多做一些題目來練習。
* 3.總之,還是要多復習,不然以前學的知識都會忘記。



