C博客作業01--分支、順序結構


C博客作業01--分支、順序結構

1.1思維導圖

總結本周的學習內容,如下圖所示:

1.2 本章學習體會及代碼量學習體會

1.2.1 學習體會

因為之前自己提前看過翁愷老師的視頻,這周所學的比較輕松。但在課堂上,仍然收獲了很多小小的細節,比如駝峰命名法;if-else語句的格式取兩位小數時會不會四舍五入等。這些能讓我寫的代碼更容易被其他人讀懂,也開闊了自己的思維,慢慢學會多去問一些為什么,多去試試其他的可能性。
還有,可能因為有一段時間(接近半個月)沒敲代碼,所以一些比如scanf里面的&經常被忘記,以后要多多敲代碼啊。

1.2.2 代碼累計

2.PTA總分

2.1截圖展示


2.2 我的總分:

PTA總分:225分

PTA實驗作業

3.1 PTA題目1

請編寫程序,根據活動經費和U盤單價預估可購買U盤的最大數量。

3.1.1 算法分析

- 1.需要的變量:經費money、U盤單價price、U盤數量number;
- 2.用double定義經費money和U盤單價price,用int定義U盤數量number;
- 3.輸入經費和U盤單價。
- 4.代入表達式:number=money/price+0.0000001。(注意double的精度缺陷)
- 輸出最大U盤數量。

3.1.2 代碼截圖

3.1.3 測試數據

3.1.4 PTA提交列表及說明

  • Q1:為什么只是部分正確,我感覺我寫的很對???
  • A1:double本身精度存在缺陷,需要手動補償。(當時剛提交一次之后就和舍友談論,試了好幾個點之后還是錯。然后第二天看到有人滿分了,就屁顛屁顛地去求助大佬啦)

3.2 PTA題目2

題目簡介:

本題要求根據某城市普通出租車收費標准編寫程序進行車費計算。具體標准如下:
起步里程為3公里,起步費10元;
超起步里程后10公里內,每公里2元;
超過10公里以上的部分加收50%的回空補貼費,即每公里3元;
營運過程中,因路阻及乘客要求臨時停車的,按每5分鍾2元計收(不足5分鍾則不收費)。

3.2.1 算法分析

- 1.定義路程和等待時間。
- 2.輸入路程和等待時間
- 3.若路程<=3公里,車費=10+等待時間/5*2;
- 4.若3公里<路程<=10公里,車費=10+2*(路程-3)+等待時間/5*2;;
- 5.若路程>10公里,車費=10+2*(路程-3)+2*0.5*(路程-10)+等待時間/5*2;;
- 6.輸出車費。

3.2.2 代碼截圖

3.2.3 測試數據

3.2.4 PTA提交列表及說明


(不要看提交列表就倆,鬼知道我在Dev-C++上有多絕望!!)

  • Q1:對於題目說的時間問題,剛開始是想先用if語句判斷時間是否為0,后來發現根本不行。。頭大。
  • A1:后來看到閑着無聊就去看了一下自己之前寫的的筆記,看到整數除以整數,結果只取整數,就想到了。
  • Q2:對題目不理解。
  • Q2:先不敲代碼,在紙上先解出這個數學題,寫成分段函數,就好啦。

3.3 PTA題目3

題目簡介

本題要求編寫程序計算某年某月某日是該年中的第幾天。

3.3.1 算法分析

- 1.定義年、月、日;
- 2.輸入年、月、日;
- 3.首先判斷年是否為閏年,即該年年份能被4整除且不能被100整除、或者能被400整除。
- 4.若為閏年:
     - 若月為一月,則天數=日;
     - 若月為二月,則天數=日+31;
     - 若月為一月,則天數=日+31+29;
     - 若月為一月,則天數=日+31*2+29;
     - 若月為一月,則天數=日+31*2+29+30;
     - 若月為一月,則天數=日+31*3+29+30;
     - 若月為一月,則天數=日+31*3+29+30*2;
     - 若月為一月,則天數=日+31*4+29+30*2;
     - 若月為一月,則天數=日+31*5+29+30*2;
     - 若月為一月,則天數=日+31*5+29+30*3;
     - 若月為一月,則天數=日+31*6+29+30*3;
     - 若月為一月,則天數=日+31*6+29+30*4;
- 5.若不為閏年:
     - 若月為一月,則天數=日;
     - 若月為二月,則天數=日+31;
     - 若月為一月,則天數=日+31+28;
     - 若月為一月,則天數=日+31*2+28;
     - 若月為一月,則天數=日+31*2+28+30;
     - 若月為一月,則天數=日+31*3+28+30;
     - 若月為一月,則天數=日+31*3+28+30*2;
     - 若月為一月,則天數=日+31*4+28+30*2;
     - 若月為一月,則天數=日+31*5+28+30*2;
     - 若月為一月,則天數=日+31*5+28+30*3;
     - 若月為一月,則天數=日+31*6+28+30*3;
     - 若月為一月,則天數=日+31*6+28+30*4;
- 6.輸出天數.

3.3.2 代碼截圖




(呼,不得不說,這個真的是很長的一串代碼。)

3.3.3 測試數據

3.2.4 PTA提交列表及說明


(沒錯,我又是在Dev-C++上寫好了再搬過去的)
Q1:有點糾結輸入里面的“/”符號的輸入,是可以直接輸入,還是再定義兩個字符?
A2:老師上課說過,scanf里面的非格式符要原樣輸出(居然忘了!!)
Q2:這個程序不難,但是我寫了很長,而且很大一部分幾乎是重復的,有什么辦法可以解決?
A2:下面是我在逛博客里面看到嚴威和林瑋璐同學的代碼,我覺得思路更清晰,明顯比我的簡潔!!!
嚴威同學的代碼:

林瑋璐同學

4.點評同學博客

1.

2.

3.

4.

5.


免責聲明!

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



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