這個作業屬於那個課程 |
這個作業要求在哪里 |
我在這個課程的目標是 |
這個作業在那個具體方面幫助我實現目標 |
參考文獻 |
1.PTA實驗作業 輸出三角形字符陣列
本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
1.1
輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。
輸入樣例:
4
輸出樣例:
A B C D
E F G
H I
J
1.1.1數據處理:
數據表達:定義了變量i, j, n,op;i, j是用來控制循環,n是用戶輸入數據,op是為了輸出字符;i, j, n,是整形變量,op是字符型變量。
數據處理:
定義變量i, j, n,op;其中i, j是用來控制循環,n為正整數n(1≤n<7),op是定義字符變量。
輸入正整數n(1≤n<7)
if (判斷1≤n<7是否成立) {
for (確定行數) {
for (確定列數) {
輸出從A開始的字符,並利用ASCII碼值進行字符的變換。
}
換行
}
}
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
6 | ![]() |
輸出6行字符 |
1 | ![]() |
輸出1行字符 |
3 | ![]() |
輸出3行字符 |
1.1.4 PTA提交列表及說明
** 我在VS上面運行無誤后直接復制粘貼 **
1.2 梅森數
形如2^n−1的素數稱為梅森數(Mersenne Number)。例如2^2
−1=3、23−1=7都是梅森數。1722年,雙目失明的瑞士數學大師歐拉證明了231−1=2147483647是一個素數,堪稱當時世界上“已知最大素數”的一個記錄。
本題要求編寫程序,對任一正整數n(n<20),輸出所有不超過2^n−1的梅森數。
輸入格式:
輸入在一行中給出正整數n(n<20)
輸出格式:
按從小到大的順序輸出所有不超過2^n−1的梅森數,每行一個。如果完全沒有,則輸出“None”。
輸入樣例:
6
輸出樣例:
3
7
31
1.2.1 數據處理
數據表達: 定義了變量n,j,m,i,count ;n是用戶輸入數據,i,j,count是直接賦值,m是用來儲存2^i-1的結果;n,j,m,count是整形變量。
數據處理:
定義變量n,j,m,count;n是正整數n(n<20),i,j拿來控制循環,count用來判斷是否有梅森數的存在,m是用來儲存2^i-1的結果。
for (判斷i與n的大小) {
儲存數據
for (對儲存數據判斷是否為素數)
if (如果不是素數) {
跳出循環;
}
if (正常結束循環) {
輸出結果並換行;
對count賦另外的值
}
}
if (如果count不變)
輸出None
}
1.2.2實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
3 | ![]() |
3是判斷進行2^n-1的次數 |
5 | ![]() |
5是判斷進行2^n-1的次數 |
7 | ![]() |
7是判斷進行2^n-1的次數 |
1.2.4 PTA提交列表及說明
我在VS上面運行無誤后直接復制粘貼
1.3 同構數
一個數恰好出現在它的平方數的右端,這個數就稱為同構數。找出1~1000之間的全部同構數。
輸出格式:
在一行中輸出所有滿足條件的同構數,每個數輸出占6列。沒有其它任何附加格式和字符。
輸出樣例:
1 5 6 25 76 376 625
1.3.1 數據處理
數據表達: 定義了變量i, n ;i在循環中直接賦值,n是儲存數據;i, n都是整形變量 。
數據處理:
定義變量i,n;i是用來判斷循環次數
for (確定循環次數)
{
數據減掉原來的數,並儲存數據
if (判斷10以內的同構數) {
輸出同構數;
跳過后續操作
}
if (判斷100以內的同構數) {
輸出同構數;
跳過后續操作
}
if (判斷1000以內的同構數) {
輸出同構數;
跳過后續操作
}
}
}
1.3.2實驗代碼截圖
1.3.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
無 | 1 5 6 25 76 376 625 | 輸出1000以內的同構數 |
1.3.4 PTA提交列表及說明
2.代碼互評
同學代碼截圖:
同學代碼截圖:
自己代碼截圖:
1.第一個同學:第一位同學的代碼和我的代碼風格大致相同,不同之處在於我比他多了一個判斷輸入的if條件語句,並且該同學的內部循環用j=i,我覺得這比較方便,思維比較好;
2.第二位同學: 第二位同學的外部循環是先把i=n,然后在進行累減,我的是進行累加,而且這位同學輸出字符用的是putchar,我用的是printf,雖然putchar,比較正規,但我覺得printf比較方便;
3.總體來說:上面兩位同學的代碼和我的代碼在風格上都有所不同,不同的人寫相同的題目,由於思維角度的不同,從而有不同的代碼風格,我要在那些比較好的代碼行中吸取經驗。
3.學習總結
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第四周 | 4h | 9 | makedown語法 | 對於C語言知識不太了解 |
第五周 | 11h | 121 | 輸入和輸出 | 一些基本的格式 |
第六周 | 16h | 187 | ig-else語句 | 對於一些格式不是不懂 |
第七周 | 17h | 342 | markdown語法和if-else語句 | 對於變量還是不能很好的掌握 |
第八周 | 17h | 121 | 定義兩個變量,對for循環有更進一步的了解 | 對於基本知識還是不夠扎實 |
第九周 | 20h | 178 | while循環,定義和調用函數 | 對於定義和調用函數還是不怎么了解 |
第十周 | 18h | 143 | for循環和if-else語句之間嵌套 | 讀完題目后大腦里面沒有相應的代碼 |
第十一周 | 17h | 193 | switch可以處理多分支問題 | 對於編程題不能很快的寫出代碼 |
第十二周 | 15h | 156 | 新學了do-while循環,了解了for,while,do-while循環之間的區別,並對在相應環境用最合適的循環有了初步認識 | 題目做的比較慢,一些基本知識還是不夠扎實 |
第十三周 | 16h | 183 | 學到了嵌套循環和break,continue語句 | 不能很好的把所學的東西交叉運用 |
第十四周 | 19h | 213 | 對以前所學的東西進行了一定程度上的復習 | 對以前所學的東西不能靈活應用 |
3.2 累積代碼行和博客字數
時間 | 博客字數 | 代碼行數 |
---|---|---|
第四周 | 323 | 76 |
第五周 | 783 | 154 |
第六周 | 1542 | 204 |
第七周 | 2131 | 293 |
第八周 | 2831 | 387 |
第九周 | 4017 | 429 |
第十周 | 5066 | 463 |
第十一周 | 6145 | 573 |
第十二周 | 7260 | 683 |
第十三周 | 8434 | 813 |
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
1.通過此次作業我對以前所學的東西復習了一下,我發現以前學的東西忘記了許多,可能是我一直在往前面趕進度的原因,平時很少回顧以前的知識點,現在我認為在往前面看新知識的同時要拿出一點時間來回顧一下以前的東西;
2.我需要多看點有關IT方面的知識,其他有些同學都已經學了好多知識了,而我一直在跟着老師的腳步,我需要提高一定的學習效率了;
3.希望自己能一直堅持下去,多學點知識。