C語言I博客作業08


這個作業屬於哪個課程 https://edu.cnblogs.com/campus/zswxy/CST2020-2
這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611
這個作業的目標 學習break語句和continue語句並應用
學號 20208997

1.PTA實驗作業(20分/題)

1.1 題目名1

打印九九口訣表

題目描述:

下面是一個完整的下三角九九口訣表:

1 * 1=1
1 * 2=2 2 * 2=4
1 * 3=3 2 * 3=6 3 * 3=9
1 * 4=4 2 * 4=8 3 * 4=12 4 * 4=16
1 * 5=5 2 * 5=10 3 * 5=15 4 * 5=20 5 * 5=25
1 * 6=6 2 * 6=12 3 * 6=18 4 * 6=24 5 * 6=30 6 * 6=36
1 * 7=7 2 * 7=14 3 * 7=21 4 * 7=28 5 * 7=35 6 * 7=42 7 * 7=49
1 * 8=8 2 * 8=16 3 * 8=24 4 * 8=32 5 * 8=40 6 * 8=48 7 * 8=56 8 * 8=64
1 * 9=9 2 * 9=18 3 * 9=27 4 * 9=36 5 * 9=45 6 * 9=54 7 * 9=63 8 * 9=72 9 * 9=81
本題要求對任意給定的一位正整數N,輸出從1 * 1到N * N的部分口訣表。

輸入格式:
輸入在一行中給出一個正整數N(1≤N≤9)。

輸出格式:
輸出下三角N*N部分口訣表,其中等號右邊數字占4位、左對齊。

輸入樣例:
4
輸出樣例:
1 * 1=1
1 * 2=2 2 * 2=4
1 * 3=3 2 * 3=6 3 * 3=9
1 * 4=4 2 * 4=8 3 * 4=12 4 * 4=16

1.1.1數據處理

數據表達:本題變量為N,i,j,n,其中i,j,n通過定義得到,N通過輸入得到;都為整型變量。
數據處理:運用for語句循環;表達式如下:
         for(j=1;j<=N;j++){
         for(i=1;i<=j;i++){
         n=i*j;
偽代碼為:定義所需變量N,i,j,n,
         輸入一個數N;
         使用兩個for循環語句(嵌套循環): 以簡化代碼  
         for(j=1;j<=N;j++){ 
         for(i=1;i<=j;i++){
         n=i*j;
         最后輸出所需的乘法表:printf("%d*%d=%-4d",i,j,n)
         

1.1.2實驗代碼截圖

1.1.3 造測試數據

輸入數據 輸出數據 說明
2 1 * 1=1 1 * 2=2 2 * 2=4 從一乘一到二乘二,呈階梯狀
5 1 * 1=1······5 * 5=25 從一乘一到五乘五,呈階梯狀
7 1 * 1=1······7 * 7=49 從一乘一到七乘七,呈階梯狀
9 1 * 1=1······9 * 9=81 從一乘一到九乘九,呈階梯狀

1.1.4 PTA提交列表及說明

提交列表說明:

格式錯誤:因為代碼打成出來沒有間隔,導致格式錯誤。
解決方式:在輸出語句中加上-4d:printf("%d*%d=%-4d",i,j,n);最后編譯正確。

1.2 題目2

一錢生多錢

題目描述:

在日常生活中,我們常常需要將一些大額的人民幣換算成零錢,已知我們有許多面值5元,2元和1元的人民幣。
編程實現:輸入我們需要兌換的金錢數,然后我們用這些面值5元,2元和1元的人民幣來兌換,要求每一種面值都至少有1張,然后輸出有多少種兌換方式。

輸入格式:
輸入在一行中給出待換的零錢數額(大於等於8小於等於100)

輸出格式:
每行輸出一種兌換方式,按照如下格式輸出(並且每一種面值的人民幣都是從小到大輸出):
five=五元數量,two=兩元數量,one=一元數量

輸入樣例:
在這里給出一組輸入。例如:

13
輸出樣例:
在這里給出相應的輸出。例如:

five=1,two=1,one=6
five=1,two=2,one=4
five=1,two=3,one=2
five=2,two=1,one=1


​​

1.2.1 數據處理

數據表達:本題變量為n,x,y,z,count,n通過輸入得到,都定義為整型。
數據處理:運用for循環語句進行嵌套循環,再運用一個for語句,表達式如下:
         for (x = 1; x<= n / 5; x++)
         for (y = 1; y<= n / 2;y++)
         for (z = 1; z<= n; z++)
         if (5 * x + 2 * y + z == n)
         最后輸出得到答案。

1.2.2 實驗代碼截圖

1.2.3 造測試數據

輸入數據 輸出數據 說明
8 five=1,two=1,one=1 8可分為一個五,一個二,一個一,為題目要求的最小值
5 無輸出 小於題目要求的大於8小於100 ,所以不符合,無輸出
9 five=1,two=1,one=2 9可分為一個五,一個二,兩個二,為中間值
11 five=1,two=1,one=4或five=1,two=2,one=2 11可分為一個五,一個二,四個一或者一個五,兩個二,兩個一,為中間值

1.2.4 PTA提交列表及說明

提交列表說明:

編譯錯誤:在編譯過程中if語句中只打了一個等號,賦值錯誤。
解決方式:提交后根據提示發現錯誤,及時改正。

2.代碼互評(5分)

同學代碼截圖1

自己代碼截圖1

不同之處:
1.該同學變量定義較少,如j*i,我則是另行定義n=j * i,他使得代碼更為簡潔。
2.且該同學在輸出語句后又使用了一個for語句,增加了i<N的條件,而我這里則沒有這一項。

同學代碼截圖2


自己代碼截圖2

不同之處:
1.該同學變量都為相應的英文字母,而我的則是取一個最簡字母作為變量,相對簡便。
2.且該同學沒有定義一個新的變量去累加,而是直接在for語句中累加,這樣看起來更為簡短。

3.學習總結(15分)

3.1 學習進度條(5分)

周/時間 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
第一周 5h 68 簡單編程
第二周 15h 251 算數運算和賦值運算
第三周 25h 368 for循環語句的應用,浮點型的學習
第四周 26h 379 自定義函數和調用函數 對調用函數的應用還不夠清楚
第五周 28h 356 分支結構中的if-else語句 對於使用分支結構的邏輯還不夠清晰
第六周 30h 398 switch語句的學習和應用 對於題目中的邏輯先后問題還不太能理解
第七周 28h 360 while語句及do-while語句的學習及運用 這兩種的具體循環點及循環特點
第八周 26h 343 break語句的深層次學習及continue語句的學習 break語句與continue語句的用法區別及兩種語句的使用位置

3.2 累積代碼行和博客字數(5分)

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

3.3.1 學習內容總結

3.3.2 學習體會

1.在本周我們學習了break語句和continue語句,在課堂上,聽老師講感覺是不難,但是到了做題目時就覺得不會了。還是得要多看看書。
2.這已經是第十五周,馬上就是十六周了,離考試也不遠了,看着這些題目,我都感覺我要掛科了,越到后面就越有這樣的感覺。
3.關於老師上課時留給我們的問題——如何使用break語句跳出整個大循環:

1. 可以在所有循環中都添加break語句。
2. 使用在循環中使用goto語句,goto語句后接上想要跳出循環的變量,則直接跳出循環到指定位置。


免責聲明!

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



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