問題 | 回答 |
---|---|
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | 作業要求 |
我在這個課程的目標是 | 運用C語言編譯完成PTA和博客園作業 |
這個作業在那個具體方面幫助我實現目標 | 完成作業並總結 |
參考文獻 | 百度百科 |
1.PTA實驗作業
1.1打印九九口訣表
本題要求對任意給定的一位正整數N,輸出從11到NN的部分口訣表。
輸入格式:
輸入在一行中給出一個正整數N(1≤N≤9)。
輸出格式:
輸出下三角N*N部分口訣表,其中等號右邊數字占4位、左對齊。
輸入樣例:
4
輸出樣例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
1.1.1數據處理
數據表達:定義整型變量i,j,n
N代表給定的一位正整數
i和j表示乘方表中的數字
數據表達:偽代碼
int N;輸入整型變量N
int i,j;輸入整型變量i.j
scanf("%d",&N);
for(j=1;j<=N;j++)
{
for(i=1;i<=j;i++)
printf("%d*%d=%-4d",i,j,i*j);//輸出i,j,i*j
printf("\n");
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 | 11=1 12=2 2*2=4 | 輸出到2的口訣表 |
3 | 11=1 12=2 22=4 13=3 23=6 33=9 | 輸出到3的口訣表 |
4 | 11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=8 34=12 44=16 | 輸出到4的口訣表 |
5 | 11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=8 34=12 44=16 15=5 25=10 35=15 45=20 5*5=25 | 輸出到5的口訣表 |
1.1.4 PTA提交列表及說明
提交列表說明:
部分正確,編譯錯誤,以為是到九九乘法表,沒審清題,輸出從11到NN的部分口訣表。
1.2 換硬幣
1.2.1 數據處理
將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式:
輸入在一行中給出待換的零錢數額x∈(8,100)。
輸出格式:
要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:“fen5:5分硬幣數量, fen2:2分硬幣數量, fen1:1分硬幣數量, total:硬幣總數量”。最后一行輸出“count = 換法個數”。
輸入樣例:
13
輸出樣例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
數據表達:定義了整形變量x為總硬幣數,b為5分硬幣數量,d為2分硬幣數量,fen1為1分硬幣數量,total為每種換法硬幣的個數,count為多少種換法。
數據處理:
定義整型變量x零錢數額,在循環中i儲存五分硬幣個數,w儲存一分硬幣個數
定義整型變量a表示最多五分硬幣個數減一,b減去五分剩余的錢,c儲存二分硬幣個數,d減去五分和二分剩下的錢,count儲存換法個數並賦值為0
輸入待換的零錢數額
x←x-8 /排除第一種算法/
a←x/5 /計算余下的錢能換幾個五分硬幣/
for(i←a;i>←0;i--) /將a賦值給i,用來儲存每次循環的五分硬幣個數,並判斷是否還有五分硬幣/
b←x-5i /減去五分剩余的錢/
c←b/2 /儲存二分硬幣個數8/
for(w←c;w>←0;w--) /將二分硬幣個數賦值給w,並判斷是否還剩余二分硬幣/
d←x-5i-2w /計算除去二分硬幣和五分硬幣的/
輸出五分硬幣,二分硬幣,一分硬幣,總硬幣個數
count++;
end for
end for
輸出換法個數
end
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
10 | fen5:1, fen2:2, fen1:1, total:4fen5:1, fen2:1, fen1:3, total:5 count=2 | 10分錢有2種換法 |
12 | fen5:1, fen2:3, fen1:1, total:5fen5:1, fen2:2, fen1:3, total:6fen5:1, fen2:1, fen1:5, total:7 count = 3 | 12分錢有3種換法 |
8 | fen5:1, fen2:1, fen1:1, | 8分錢有一種換法 |
1.2.4 PTA提交列表及說明
提交列表說明:
2.代碼互評(5分)
同學代碼截圖
自己代碼截圖
第一位同學用了2層循環和2個for語句,先在最外面進行5分錢的處理,再進入循環處理2分和1分錢
我是先排除第一種算法,學計算五分硬幣個數。然后計算二分硬幣個數然后計算一分硬幣個數。
第二位同學用了嵌套和3個for語句循環,將5分硬幣.2分硬幣.1分硬幣的個數加起來,最后直接輸出結果。
同學使用的變量比較少且通俗易懂,是我需要學習的地方。我的變量多一些。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第四周 | 7 | 120 | 學會了基本結構 | 無 |
第五周 | 8 | 140 | 學會了scanf和printf | 無 |
第六周 | 10 | 170 | 如何用 MinGW-w64 來編譯C程序 | 無 |
第七周 | 17 | 240 | 運用if,else語句完成數學問題 | 不太熟練if-else語句 |
第八周 | 20 | 344 | 運用for循環語句 | 對char的用法還不怎么會 |
第九周 | 23 | 350 | 學習了如何使用自定義函數 | 自定義函數還不太會 |
第十周 | 24 | 410 | 熟悉並掌握多分支結構、字符型數據類型和邏輯運算符結構 | 各個運算符的意思還不太理解 |
第十一周 | 22 | 430 | 熟悉並掌握分支結構switch語句 | 對於&&和||的用法不熟練 |
第十二周 | 29 | 410 | 學會使用while和do-while結構解決問題 | 嵌套語句用不熟練 |
第十三周 | 24 | 455 | 嵌套循環 continue語句和break語句 | 新學的語句用不熟練 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
這周我么學習了break,continue語句,break是直接結束循環,continue是結束本次循環
合理安排時間,臨近考試,要多加鞏固。目前還沒有做到心中有數,所以得更加努力才行。
所謂熟能生巧,以后多做PTA,使復雜的語句變成成簡單的語句,這是我目前所缺乏的能力。做一個PTA所花的時間也比較長,思考做法也比較慢,還需多下功夫。