這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業的要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095 |
我在這個課程的目標是 | 學習基礎程序語言C語言,基本掌握C語言的思維方向 |
這個作業具體在哪個方面幫助我實現目標 | 編程訓練,思維構建,邏輯推導,字符型變量,嵌套循環的練習 |
參考文獻 | 百度,C語言程序設計 |
1.PTA實驗作業
1.1 題目1
7-8 輸出三角形字符陣列
1.1.1數據處理
數據表達:變量i是行數的計數器;變量j是每行列數的計數器;n是輸入的數,也是用來監控每行列數是否完成的;num是每一行的總列數;sum是總行數
數據處理:
#include<stdio.h>
int main ()
{
定義變量
用戶輸入
將sum以及num賦值
while (i<num)
{
把num賦值給n,以免在內循環中n值丟失
for (j=0;j<num;j++)
{
輸出一個字母
字符累加
n累減1,使得在該行的字母不會無限增加
}
輸出換行
累加行數
num累減
}
return0;
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
4 | A B C D <換行>E F G <換行>H I <換行>J | 第一行和第一列都是4 |
3 | A B C <換行>D E <換行>F | 第一行和第一列都是3 |
1.1.4 PTA提交列表及說明
格式錯誤1、2:在while語句的條件句中我將條件設置為i<=sum,所以在輸出結果中多了一次換行。在此感謝助教羅鵬同學的幫助
答案正確:將條件改為i<sum,答案正確。
1.2題目2
7-3 梅森數
1.2.1數據處理
數據表達:變量sum是最后輸出的梅森數;num是用戶輸入變量;i是外循環的計數器;j是內循環的計數器;k是在內循環的if-else語句里的計數器
數據處理:
#include<stdio.h>
#include <math.h>
int main ()
{
定義變量
用戶輸入
for(i=2;i<=num;i++)
{
計算sum
for(j=2;j<=sum的平方)
if (判斷sum/j是否與0相等) break;
if(j>sum的平方)
{
輸出梅森數
k++;
}
}
if (k==0)
輸出“None”
return 0;
}
1.2.2實驗代碼截圖
1.2.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1 | None | 最小梅森數是3 |
6 | 3<回車>7<回車>31 | 2的6次方有三個梅森數 |
19 | 3<回車>7<回車>31<回車>127<回車>8191<回車>131071<回車>524287 | 2的19次方有7個梅森數 |
21 | 3<回車>7<回車>31<回車>127<回車>8191<回車>131071<回車>524287 | 因為給出的范圍是輸入需要小於20,所以當輸入21時,輸出仍然是輸入十九是的數字 |
1.2.4PTA提交列表及說明
答案正確:之前的思路只有一個大概的輪廓,寫出來也總是不能對,后面再網絡上百度了這道題,看到了大佬們的寫法,才按着思路寫下來。但可能因為不是我完全的獨立思考,有些地方寫完了我也不能解釋的很清楚
1.3題目3
7-4 同構數
1.3.1數據處理
數據表達:變量i是計數器,也是同構數
數據處理:
#include<stdio.h>
int main ()
{
定義變量
for (i=1;i<1000;i++)
if (判斷i是否是同構數)
輸出i(記得留出六個位數)
1.3.2實驗代碼截圖
1.3.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
無 | 1 5 6 25 76 376 625 | 無輸入 |
1.2.4PTA提交列表及說明
答案正確:剛開始我用的平時做題的思路想的,但是一直輸出不了,那時的代碼也不能調試,一調試就直接結束。后面看到別人用的是直接輸出,我也就這么做了(捂臉),老師說不可以,我就撿起最開始的思路來想。雖然最后還是沒有想出來,而且好復雜的樣子。
答案錯誤:這就是我在看了同學代碼之后的嘗試。我忘記把1也設定進去了
答案正確:我也不知道這是什么神奇代碼,耗時居然只有2ms?但是我完全沒有印象
答案正確:答案錯誤改正之后的結果。同學的這段代碼我真的想不到。利用題目給出的范圍判斷同構數,很簡單也很巧妙。
2.代碼互評
同學代碼:
我的代碼:
1、同學的代碼是直接用兩個for排出行和列的。我的是用了while和for
2、我的還是太麻煩了,而且代碼很長,定義的變量很多,缺點太多了
同學代碼:
我的代碼:
1、同學代碼很長,但是她的方法就是我之前想到的方法。
2、我是利用了題目給出的范圍,她是在for循環里面嵌套if-else
3.1學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
9/28-10/05 | 約2小時 | 26行 | 輸入模式的學習,練習 | 熟練度不夠,對於輸入輸出過程基本是完全不理解 |
10/05-10/12 | 約6小時 | 86行 | 輸入和輸出學會了,不同的結構,語句,運算的學習等等 | 熟練度不夠,知識存儲量不夠,導致編程的時候經常需要查閱資料 |
10/12-10/18 | 約5小時 | 91行 | 可以自行編程,只有編程完成后出現錯誤才需要向同學求助。基本操作和思路學會,但是有些不夠熟練。學習了代碼的調試 | 不能熟練自主操作調試,編程不夠熟練 |
10/18-10/26 | 約12小時 | 127行 | 可以看着書寫出來函數定義基操 | 有時的變量定義拿不准,總是會多定義一些莫名其妙的變量,我想這是函數定義不夠熟練、對題目的理解不到位的原因吧 |
10/26-11/03 | 約15小時 | 131行 | if-else的嵌套,邏輯運算符,字符型變量 | 字符型變量還不理解 |
11/03-11/8 | 約17小時 | 121行 | switch語句 | 思維邏輯還有點混亂 |
11/8-11/22 | 約16小時 | 106行 | 嵌套循環和break,continue的使用 | 在做比較有難度的題時,獨立思考的結果不理想 |
11/22-11/29 | 約20小時 | 90行 | 之前的內容的深度學習 | 在思考的時候總會比別人想的復雜 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
思維導圖貼圖:
3.3.2學習體會
本周學習結束了。過不了多久期末考試就要到來了。在這段時間的學習中,嵌套循環的練習進行的還不錯,字符型變量也能夠理解了。但是在思考的時候總是比別人慢一步。總是說自己要多做題,多刷題,可是到了最后連作業也完成的夠嗆。總是要在后面完成。希望不要掛科吧......