作業要求:【
第三次作業 題目7-1 計算火車執行時間
1 #include2解題思路第一步:先定義四個整數變數a,b,c,d;int main(void)3
12 printf("
%02d:%02d
",c,d);
13return0;
14 }
第二步:輸入整數變數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)解題思路第一步:定義三個整型變數,a,b,c,delse
if(c>=b*0.5
)
else
return0;
}
第二步:輸入整型變數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萬。他想買這套房子,多大的 率能夠忍受...