第二次作業。。
7-7 計算火車執行時間
1.程式碼:
#include<stdio.h> int main() { int a,b,c,d,e,f,g,h; scanf("%d%d",&a,&b); d=a/100*60; c=b/100*60; e=d+a-a/100*100; f=c+b-b/100*100; g=(f-e)/60; h=(f-e)-g*60; printf("%02d:%02d",g,h); return 0; }
2.思路:
第一步:定義變數,a,b,c,d,e,f,g,h;
第二步:輸入變數a,b;其中a為出發時間b為到達時間。
第三步:由於我所定義的變數都為整型變數,所以我講輸入的兩個變數除一百進而得到輸入時間的小時部分,再將小時數換算成分鐘數,並將計算後的結果分別賦值給d,c。
第四步:我使用類似於第三部的方法取得輸入兩時間的分鐘部分,再加上上一步將小時數換算成為分鐘數的結果,得到輸入和輸出時間對應的總分鐘數,並將結果賦值給e,f。
第五步:我將所得到達時間與出發時間的分鐘數相減得到出發與到達時間的分鐘數總差,再除以一小時對應的分鐘數,得到結果的整數部分即為所求接過小時部分,並將結果賦值給g。
第六步:將上一步中求得的小時數換算成分鐘數,再用出發時間和到達時間分鐘數的差值減去換算後的結果,所得即為所求結果分鐘部分。
第七步:輸出結果,其中%02d中的02代表輸出結果保留兩位整數部分,使結果符合題意。
流程圖:
執行截圖:
程式正常:
遇到問題及解決辦法:
在該題的解題過程中,借位是一個難點,也是本題遇到的最大問題,最終在自己和同學的幫助下利用整形除一百自動捨棄小數部分,完成作業。
7-2 高速公路超速處罰
1.程式碼:
#include<stdio.h> int main() { double a,b,c,d; scanf("%lf%lf",&a,&b); c=b*0.1; d=b*0.5; if(a<c+b){ printf("OK"); } else{ if(a>=c+b&&a<d+b) { printf("Exceed %.0lf%%. Ticket 200",(a-b)/b*100); } else{ printf("Exceed %.0lf%%. License Revoked",(a-b)/b*100); } } return 0; }
2.思路:
第一步:先定義四個浮點型變數a,b,b,d。
第二步:輸入兩個浮點型變數a,b,分別代表車速和限速。
第三步:分別將輸入限速的百分之十和百分之五十賦值給c,d‘
第四步:進行判斷,如果車速,未超過限速的百分之一百一則直接輸出OK,若超過,則進行下一步判斷,若車速超過限速的百分之一百一而沒超過百分之一百五,則輸出Exceed%f%%,其中末尾的%是為了在輸出時出現百分號,如果車速超過限速的百分之一百五,則輸出Exceed %.0lf%%. License Revoked。
流程圖:
除錯結果:
執行截圖:
遇到問題及解決辦法:
這道題問題主要出在%無法輸出,後來經過詢問同學解決問題。
總結:
經過這幾周的學習,我體會到了打程式碼的樂趣,同時經過這段時間的學習也使我對於程式設計有了新的認識。
這幾周我們主要學習了if else語句,和else if,巢狀模型,switch case和剛剛接觸的for迴圈這些還只是入門所以我決定要好好學習c語言。
表格:
ps:系列一,代表程式碼數
週數 |
第一週 |
第二週 |
第三週 |
程式碼數 |
120 |
110 |
140 |