C語言I博客作業09


這個作業屬於那個課程
這個作業要求在哪里
我在這個課程的目標是
這個作業在那個具體方面幫助我實現目標
參考文獻

1.PTA實驗作業

1.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

1.1.1數據處理:

數據表達:用了變量f5, f1, f2, total, count, x;x是用戶輸入值,f5, f1, f2,分別用於計算5分,1分,2分的硬幣個數,total是所用硬幣個數,count是換法個數;f5, f1, f2, total, count, x都是整形變量。
數據處理:

    定義一些用於運行代碼的變量
	 輸入
	if (判斷x的取值范圍) {
		for (先從5分硬幣最多開始計算)
			for (2分硬幣最多開始計算) {
				利用輸入與f5和f2之間的關系得到f1
				if ( 進行輸出判斷) {
					計算總硬幣數
					輸出數據

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
9 fen5:1, fen2:1, fen1:2, total:4 count = 1 9是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數;
10 fen5:1, fen2:2, fen1:1, total:4 fen5:1, fen2:1, fen1:3, total:5 count = 2 10是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數;
11 fen5:1, fen2:2, fen1:2, total:5 fen5:1, fen2:1, fen1:4, total:6 count = 2 11是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數;

1.1.4 PTA提交列表及說明

部分正確:我把內外循環里面的變量弄反了

1.2 跟奧巴馬一起畫方塊

美國總統奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統。2014年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!

輸入格式:

輸入在一行中給出正方形邊長N(3≤N≤21)和組成正方形邊的某種字符C,間隔一個空格。

輸出格式:
輸出由給定字符C畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的50%(四舍五入取整)。

輸入樣例:

10 a

輸出樣例:

aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

1.2.1 數據處理

數據表達:用了變量n,i,m,j,a;n,a,ch是用戶輸入的數據,i,j用於循環判斷,m是方便用於四舍五入取整;n,i,m,j,a是整形變量,。
數據處理:

        定義變量
	輸入數據
	if (對輸入進行判斷) {
                通過對(輸入%2)取余數的方法進行四舍五入取整		
		    嵌套循環輸出字符
		}	

1.2.2實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
4 b bbbb\bbbb 4是確定正方形的邊長,b是組成正方形邊的某種字符
3 c ccc\ccc 3是確定正方形的邊長,c是組成正方形邊的某種字符
5 a aaaaa\aaaaa\aaaaa 5是確定正方形的邊長,a是組成正方形邊的某種字符

1.2.4 PTA提交列表及說明

部分正確:我把ch = getchar()放入循環內了

2.代碼互評

同學代碼截圖:

同學代碼截圖:

自己代碼截圖:

1.第一個同學:該同學的代碼和我的代碼風格大致相同,但我認為該同學可以將兩個int合並,並且我對於這個題目的算法我也不是很清楚,所以我在輸出的時候我多加了if判斷一下,現在看來可能是多余了。
2.第二位同學:該同學在解決問題時用了3個for循環,在能用更低次數的for循環就盡量用最低次數對的for循環,因為對循環次數很大的程序需要考慮執行效率問題。
3.總體來說:我們在編寫代碼的時候,盡量用最簡潔代碼解決實際問題,這需要我們對思考問題的程度比較深,也許就是這樣,我們需要更努力的學習新的知識。

3.學習總結

3.1 學習進度條

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
第八周 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語句 不能很好的把所學的東西交叉運用

3.2 累積代碼行和博客字數

3.3 學習內容總結和感悟

3.3.1 學習內容總結

3.3.2 學習體會

1.在新的一周中我學習了break語句和continue語句,並了解到break可以結束循環,continue是跳過后面語句繼續循環,在多條件控制的循環語句后,經常需要由條件語句來區分不同的情況。
2.在此次作業中,我感覺我好不容易提上來的做提速度有所下降,我覺得這可能是最近做事不怎么上心的原因,所以我希望在以后的的時間里繼續提高自己的解題速度,同時解題質量也要有保證哈。
3.從最近這幾天做題目的情況看來,我還需要更加努力,同時我希望自己弄點休閑時間來看些課外書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM