第二次隨筆:程式碼的世界
前言
來到大學已經一個多月了,通過這近兩個月的C語言的學習,感覺自己彷彿已經觸碰到了程式碼世界的一隅,從“hello world”到“for的迴圈”,腦子裡的程式碼數也慢慢豐富起來,C語言的樂趣也邁著輕悅的步伐緩緩靠近
著我,希望在接下來的學習裡,能夠繼續有所收穫。
作業
第三週作業
這一週的作業可以說是我們接觸的第一個稍有難度的作業了,無論從數量還是質量看都是。而其中最讓我頭疼的就是《7-7 計算火車執行時間》了。
這道題要求根據火車的出發時間和達到時間,編寫程式計算整個旅途所用的時間。
剛開始看這道題的時候一頭霧水,完全不知道該怎麼操作,後來在同學的指導下終於有了思路。
這道題主要的難點就是小時上的借位和分鐘與小時的轉換。
程式碼:
1 #include <stdio.h> 2 int main() 3 { 4 int abcd,qwer,xy,mn; 5 scanf("%d %d",&abcd,&qwer); 6 7 xy=qwer/100-abcd/100; 8 mn=qwer%100-abcd%100; 9 10 if(mn<0) 11 { 12 mn=60+mn; 13 xy=xy-1; 14 } 15 16 printf("%02d:%02d",xy,mn);17 18 return 0; 19 20 }
思路:
1 定義兩個輸入變數abcd和qwer;
2 定義兩個輸出變數mn和xy;
3 通過abcd和qwer除以一百來完成初步的小時化並通過相減來計算消耗的時間;
4 通過if語句來完成小時的結位從而達到完全的小時化;
5 由於小時或分鐘可能出現類似於2.30之類的情況,於是用%02d來進行0的補位,從而實現02.30的情況。
流程圖:
結果:
錯誤情況:
沒有進行小時和分鐘的補0處理導致答案錯誤。
除錯時:
經過除錯,把問題解決了。
第四周作業
第四周的作業總體來說難度偏大,但有個別題目卻也十分有趣,而最讓我感興趣的就是《7-2 高速公路超速處罰》了。
這道題要求根據車速和限速自動判別對該機動車的處理。
達到或超出本車道限速的10%則處200元罰款;若達到或超出50%,就要吊銷駕駛證。
這道題主要的難度就是如何輸出百分號和如何計算限速的百分之幾。
程式碼:
1 #include <stdio.h> 2 int main() 3 { 4 double d; 5 double a,b,c; 6 scanf("%lf %lf",&a,&b); 7 c=a-b; 8 d=(c/b)*100; 9 if(d<10) 10 { 11 printf("OK"); 12 } 13 else if(d<50) 14 { 15 printf("Exceed %.0f%%. Ticket 200",d); 16 } 17 else 18 { 19 printf("Exceed %.0f%%. License Revoked",d); 20 } 21 22 return 0; 23 }
思路:
1 定義四個變數a,b,c,d;
2 輸入車速a,限速b,並通過相減算出差值c,再通過c與b的相除計算出差值是限速的百分之幾,即超出限速的百分之幾;
3 通過if語句進行判斷,實現不同的處理;
4 在輸出時百分號用%%來表示。
流程圖:
結果:
錯誤情況:
沒有弄清楚百分號如何表示,導致輸出時未顯示百分號。
除錯時:
經過除錯之後,問題得到解決。
總結和學習進度條
通過這幾周的學習,可以說已經打開了通往程式碼世界的大門,當然中間遇到了很多的問題,也產生了很多不適當的情緒。但幸運的是,我都克服了,希望在下面的學習中可以再接再厲,繼續努力學習,向著程式碼世界更進一步。
點評
1 張春宇 http://www.cnblogs.com/zcybky/p/9853307.html
2 莫有江 http://www.cnblogs.com/moyoujiang/p/9892524.html
3 王嘉聰 http://www.cnblogs.com/asdwadsxc/p/9892297.html