C語言I博客作業03


這個作業屬於哪個課程 <計科三班>
這個作業要求在哪里 <作業要求>
這個作業的目標 提高編程和理解能力並學會總結
學號 20209027

一、PTA實驗作業。(15分/題)

1.1 輸出華氏-攝氏溫度轉換表 (15分)

題目內容的描述:輸入2個正整數lower和upper(lower≤upper≤100),請輸出一張取值范圍為[lower,upper]、且每次增加2華氏度的華氏-攝氏溫度轉換表。
溫度轉換的計算公式:C=5×(F−32)/9,其中:C表示攝氏溫度,F表示華氏溫度。
輸入格式:在一行中輸入2個整數,分別表示lower和upper的值,中間用空格分開。
輸出格式:第一行輸出:"fahr celsius"接着每行輸出一個華氏溫度fahr(整型)與一個攝氏溫度celsius(占據6個字符寬度,靠右對齊,保留1位小數)。若輸入的范圍不合法,則輸出"Invalid."。

1.1.1 實驗代碼的截圖。

1.1.2 數據處理。
數據表達:變量分別是整型變量lower、upper、i和雙精度浮點型變量celsius,lower和upper代表華氏溫度范圍的最低和最高值,i用於循環結構中代替fahr的值進行計算,celsius則是攝氏溫度的值。
數據處理:用到了循環結構和分支結構,且利用了溫度轉換的計算公式:C=5×(F−32)/9這個表達式。

1.1.3 PTA提交列表及說明

Q1:之前一直出現答案錯誤而且完全沒有頭緒一直僵硬了一個多鍾頭,神煩!
A1:在這一個多鍾頭里反復實驗,明明在其他編譯環境下輸出的和題目要的一摸一樣,但就是答案錯誤,在某一刻突然想到了那個關鍵的小數點,沒錯就是計算Celsius的值時表達式中都沒有出現小數點,所以一直答案錯誤,我一加上小數點,答案正確!!!,這是我們編程中常見又致命的一個錯誤。
Q2:那個條件語句也是神煩!
A2:條件語句這一塊我也嘗試更改了很多次,不過最后我看到並學習了C語言書里的邏輯運算符,將這一問題輕松化解,nice!

1.2求組合數。

題目內容的描述:本題要求編寫程序,根據公式Cnm=m!(n−m)!​n!算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和調用函數fact(n)計算n!,其中n的類型是int,函數類型是double。
輸入格式:輸入在一行中給出兩個正整數m和n(m≤n),以空格分隔。
輸出格式:按照格式“result = 組合數計算結果”輸出。題目保證結果在double類型范圍內。

1.2.1 實驗代碼的截圖。

1.2.2 數據處理。
數據表達:變量分別是整型變量i,n,m和雙精度浮點型變量result,n,m分別為用戶輸入的兩個整數,result表示組合數計算結果。
數據處理:運用了循環語句和自定義函數調用,涉及的計算表達式為n!/m!(m-n)!。

1.2.3 PTA提交列表及說明。

Q1:不太了解自定義函數的運用。
A1:參考並學習了數上的相關知識后將其迎刃而解。
Q2:經常出現編程錯誤而不知道原因。
A2:因為對自定義函數的太了解和粗心而沒有打分號。

1.3.階梯電價。

題目內容的描述:為了提倡居民節約用電,某省電力公司執行“階梯電價”,安裝一戶一表的居民用戶電價分為兩個“階梯”:月用電量50千瓦時(含50千瓦時)以內的,電價為0.53元/千瓦時;超過50千瓦時的,超出部分的用電量,電價上調0.05元/千瓦時。請編寫程序計算電費。
輸入格式:輸入在一行中給出某用戶的月用電量(單位:千瓦時)。
輸出格式:在一行中輸出該用戶應支付的電費(元),結果保留兩位小數,格式如:“cost = 應付電費值”;若用電量小於0,則輸出"Invalid Value!"。

1.3.1 實驗代碼的截圖。

1.3.2 數據處理。
數據表達:變量分別為整型變量elect和雙精度浮點型變量cost,elect代表用戶輸入的用電量,cost代表電費。
數據處理:運用了if嵌入分支語句,涉及的計算表達式為電費=用電量0.52與電費=500.52+(用電量-50)*0.58。

1.3.3 PTA提交列表及說明。

Q1:為什么經常犯答案錯誤。
A1:因為計算公式的錯誤和除法運算的錯誤使用,應該讓除法兩邊為分數型不然輸出答案為零,這是常見錯誤。

二、閱讀代碼。(-5分——5分)


我認為這是一段優秀代碼,其可學習的地方如下:

  1. 排布井然有序,清晰明了,讓人看一眼就能夠清楚的明白其用意。
  2. 定義變量的同時將變量賦值,我覺的這值得我學習,而不用另外起一行進行賦值,節省了數據空間。
  3. 循環結構和分支結構的靈活運用,相互穿插,簡單明了的將其想要的東西進行表達。
  4. 其中的(double)sum是我從沒見過的用法,不過根據我的經驗這應該是用來防止整數相除成零的錯誤,我認為十分便捷且直白值得我學習。
  5. 其最后的printf輸出也值得我學習,我一般喜歡吧兩個放到一個printf中表達,而這樣不僅讓排版更加整齊,也方便別人進行解讀。

三、學習總結。

3.1 學習進度條。(5分)

周/日期 這周所花的時間 代碼行 學到的知識點簡介 目前比較迷惑的問題
6/5-6/11 9小時左右 大約432行 輸出“Hello World!"及溫度轉換
7/12-7/18 8小時左右 大約471行 分段函數中的if-else語句和溫度轉換表 scanf語句的使用
8/19-8/25 10小時左右 大約640行 for循環語句與乘方表和階乘表的生成 自定義函數的調用
9/25-9/1 8小時左右 大約640行 二分支和多分支結構和if-else及else-if語句還有字符型數據和邏輯運算 字符型數據的靈活運用
10/2-10/8 10小時左右 大約920行 switch語句

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

3.3 學習感悟。(5分)
在這周的學習過程中我學到了很多,對於編程也是越來越熟練了,雖然遇到了很多問題不過還是努力的將其解決掉了,就在寫博客的過程中因為要統計博客字數,但因為博客字數太多,無法逐個數,只能大概估算而無法得到准確的答案,所以我想可不可以編寫一個代碼計算呢?應該很復雜吧,不過我以及有了大致思路,之后有時間我會嘗試的。


免責聲明!

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



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