我的第二次作業

2022-05-16 20:27:57 字數 3602 閱讀 1384

作業要求:【

第三次作業 題目7-1 計算火車執行時間

1 #include2

int main(void)3

12 printf("

%02d:%02d

",c,d);

13return0;

14 }

解題思路第一步:先定義四個整數變數a,b,c,d;

第二步:輸入整數變數a,b的值,a的值表示火車出發時間,b的值表示火車到達時間。

第三步:計算出整數變數c的值。c的值為b/100-a/100的值。即火車到達時間除以100取留下的整數部分就是火車到達時的小時數,再減去火車出發時間除以100取留下的整數部分即火車出發時的小時數,就等於旅途時所用的小時數。

第四步:計算出整數變數d的值。c的值為b%100-a%100的值。即火車到達時間除以100取餘就是火車到達時的分鐘數,再減去火車出發時間除以100取餘即火車出發時的分鐘數,就等於旅途時所用的分鐘數。

第五步:因為是減法,會考慮到分鐘可能為負數的情況,所以要向小時借位。所以進行一步判斷,判斷計算出旅途所用的分鐘數d是否小於0,如果小於零執行第六步,否則直接跳轉第七步。

第六步:因為分鐘數已經小於零了,所以需要在小時上減去1,在分鐘上加上60,即d=60+d ,c=c-1。這樣就避免了分鐘會出現負數的情況。

第七步:輸出最後算出的值。02d代表了輸出2位整數,如果不足就用0補齊,這樣就符合了題目的條件。

流程圖

程式執行時的結果

本題除錯過程碰到問題及解決辦法

在換個資料時,即到達分鐘數比出發分鐘數小的時候,結果就與題目不符,出現了負號。

除錯過後問題解決了,但是輸出的問題還存在著如果分鐘或者小時小於2位,那麼前面的0如何輸出,最後思考並多次試驗無果後,在網上尋找了解決方法,並將這種方法記了下來。02d就是輸出2位整數,如果不夠的話計算機會在前面補0,這種方法還是非常適用於這種時間題目的。

然後思考後在加上在慕課網上的學習,我了解到沒有考慮分鐘借位的問題,我嘗試著修改程式,最後新增了if 語句後除錯解決了這個問題,即當分鐘數相減後小於0時,將分鐘數加上60,並將小時數減去1即可,這樣就不會出現分鐘為負數的情況

個人總結

本週我學習主要是在慕課網上的學習,知道了#deline指定的乙個數沒有辦法進行更換,還有if語句的使用,以及簡單,多重,巢狀的if else 語句的使用,我們做題簡便性取決於你使用的是哪類語句,有些語句雖然處理方法相同,但是卻不一定適合某些題目。

遇到的問題

當我使用if語句的時候,經常會在if語句的後方加上分號,這是初學者所容易犯得錯誤,在使用else時,經常會搞混與這個else結合的if時那個,並且在使用else if 時,括號內的範圍總是摸索不清,但經過多次聯絡,這些問題已經基本解決。

第四次作業  題目7-2高速公路超速處罰

#includeint main(void)  

else

if(c>=b*0.5

)

else

return0;

}

解題思路第一步:定義三個整型變數,a,b,c,d

第二步:輸入整型變數a,b的值,a代表車速,b代表限速。

第三步:計算出車速超出限速的多少,即c的值。

第四步:計算出超速百分比,即超出的速度比上限制的速度在乘上100,就是超速的百分比數值。

第五步:進行判斷,如果超出的速度低於本車道限速的10%,就將進行第六步,如果達到或超出本車道限速50%,就將進行第七步,否則,進行第八步,這裡需要用到else if語句。

第六步:輸出ok!。

第七步:輸出exceed %.0f%%. license revoked,其中%.0f代表著輸出的超速百分比為沒有小數,而兩個百分號是為了在輸出時出現百分號。

第八步:輸出exceed %.0f%%. ticket 200,其中的%.0f也代表著超速百分比。

流程圖

當我剛開始編完程式後去除錯時候沒有任何問題,程式可以照常執行,但是結果卻和題目對不上,無法輸出那個百分號。

我嘗試著在前方加入百分號,但結果仍然不對,但當我在後方加入百分號後,程式輸出就出現了百分號,這是我理解到如果想要輸出乙個百分號,必須在程式中寫入兩個百分號,我因此又學到了一些東西。

程式正確執行

本週總結

本週我依舊在慕課網上學習,我學到了while和for迴圈結構,do while迴圈結構,switch case跳轉,這些語句都很常用,特別是迴圈結構,有時候如果用上迴圈,會比你不用迴圈然後敲出幾百行**來的簡單,而switch case 語句,是制定個變數,當你變數是某個整數值時,如果這時候case正好等於這個值,程式將會直接跳轉到那條語句上,但是,case並不能阻擋程式的進行,如果想結束程式,必須用break彈出這個迴圈,並且switch制定的變數必須是整數。

遇到的問題和解決辦法

在剛開始使用迴圈語句時,經常不懂到底是該用for迴圈結構還是while更或者是do while迴圈結構。當一種需要迴圈結構的題,我會試著用三種迴圈結構都適用一下,比較一下。比較後,我發現for語句是適合於已知次數的迴圈,do while語句適合於先執行迴圈的題,而剩下的情況用while比較好。在其他問題方面上我不會的也會去請教同學,如果同學也不懂的話,我回去網上搜尋解決的方法,如果網上實在解決不了的情況下。我會向老師去請教問題。

統計圖表

點評部落格:    【【【

第二次作業

execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...

第二次作業

第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...

第二次作業

檔名稱 516.cpp 作 者 闕文榮 完成日期 2016 年 3 月 11 日 版 本 號 v1.1 對任務及求解方法的描述部分 用while語句控制輸出 輸入描述 略 問題描述 現在北京有一套房子,200萬,假設房價每年 10 乙個軟體工程師每年固定能賺40萬。他想買這套房子,多大的 率能夠忍受...