問題 |
回答 |
這個作業屬於那個課程 |
C語言程序設計II |
這個作業要求在哪里 |
C語言I博客作業10 |
我在這個課程的目標是 |
掌握所學的C語言知識 |
這個作業在那個具體方面幫助我實現目標 |
完成PTA,從中學習 |
參考文獻 |
Markdown基本語法 |
一、PTA作業(20分/題)

1.1本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
輸入格式;
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。
輸入樣例:
4
輸出樣例:
A B C D
E F G
H I
J
1.1.1數據處理
數據表達:定義了整形i,j,n以及字符型變量c,c是輸出的字母n是字母的行數。
數據處理:定義整形i,j,n,字符型變量c,c是輸出的字母n是字母的行數。
把A賦值給c;
輸入n;
for i遞加
{
for j 遞加
{
輸出c;
c++;
換行;
1.1.2實驗代碼截圖

1.1.3 造測試數據
1.1.4 PTA提交列表及說明

編譯錯誤:;字符型定義變量打成了"",下次多加注意
1.2梅森數
形如2^n-1的素數稱為梅森數(Mersenne Number)。例如22−1=3、23−1=7都是梅森數。1722年,雙目失明的瑞士數學大師歐拉證明了2^31−1=2147483647是一個素數,堪稱當時世界上“已知最大素數”的一個記錄。
本題要求編寫程序,對任一正整數n(n<20),輸出所有不超過2^n−1的梅森數。
輸入格式:
輸入在一行中給出正整數n(n<20)。
輸出格式:
按從小到大的順序輸出所有不超過2^n−1的梅森數,每行一個。如果完全沒有,則輸出“None”。
輸入樣例:
6
輸出樣例:
3
7
31
1.2.1 數據處理
數據表達:定義了整形變量n,m,i,j,x=0,n是用戶輸入的數,i用來保存輸出梅森數,j和m用來控制循環
數據處理:
輸入n
if n<2
{
輸出 None
}
for 遞增
{
將m的平方賦值給i
for i的遞增
{
if i除以j取余等於0
x++
}
if x等於0
換行 i
重新賦值x
1.2.2 實驗代碼截圖

1.2.3 造測試數據
1.2.4 PTA提交列表及說明
編譯錯誤:輸入的時候中間打了個句號,語句后少打了;在Dev-c++上調試后發現的問題。
1.3同構數
一個數恰好出現在它的平方數的右端,這個數就稱為同構數。找出1~1000之間的全部同構數。
輸入格式;
在一行中輸出所有滿足條件的同構數,每個數輸出占6列。沒有其它任何附加格式和字符。
輸出格式:
1 5 6 25 76 376 625
1.3.1 數據處理
數據表達:定義了整形i,j,n;i用於for循環,n為輸入的數,j是n的平方。
數據處理:定義整形i,j,n;i用於for循環,n為輸入的數,j是n的平方。
開始
定義整形
for i的遞增
{
將i賦值給n;
n的平方等於j;
if n==j%10||n==j%100||n==j%1000 /*判斷是否n為同構數/*
輸出
}
結束
1.3.2 實驗代碼截圖

1.3.3 造測試數據
1.3.4 PTA提交列表及說明

少了個n=i
2.代碼互評(5分)
同學代碼

我的代碼

都是用計算位數的方法然后求余來進一步判斷是否為同構數。
不同之處:
他是自定義函數求平方,用for語句來計算求余除的數。我用了for循環挨個找出1000內的同構數。
同學代碼

我的代碼

分成兩部分后,通過判斷i%j是否為0來判斷是否為素數。
開始是n<2,用n=1來排除None這種情況,這位同學用了break語句來跳出循環。
三、學習總結(15分)
3.1 學習進度條(5分)
|
周/日期 |
第六周 |
第七周 |
第八周 |
第九周 |
第十周 |
第十一周 |
第十二周 |
第十三周 |
第十四周 |
3.2 累積代碼行和博客字數(5分)
|
時間 |
第六周 |
第七周 |
第八周 |
第九周 |
第十周 |
第十一周 |
第十二周 |
第十三周 |
第十四周 |

3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結

3.3.2 學習體會
作業難度依次在增加,如果只是跟着老師的節奏,只會落后的越來越多,課后多作鞏固,才能熟能生巧。和大佬的差距落下很多,自學能力還不夠。