[問題] C 計算日期的問題

作者: nikuman (nikuman)   2016-07-02 04:06:16
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Codeblock
問題(Question):
題目: 寫一個程式計算給定日期為星期幾。輸入會先告訴程式某年的 1 月 1 號為星期幾,例如
範例中 2012 年的 1 月 1 號為星期日。接著程式會收到一些日期,並要計算出給定日期
為星期幾,例如範例中程式將會收到 11 月 13 號,並計算出該日期為星期二。
輸入格式
第一行包含一個西元年以及該年的一月一日為星期幾,如範例中 2012 0。注意,0 代表
星期日,1 代表星期一,以此類推。第二行會告訴程式接下來將有 n 組日期需要計算。
n 的範圍為 1 至 10。接下來的 n 行,每一行將會有一組需要計算的日期(月、日),如
範例中的 11 月 13 號。若輸入的「月」有誤請輸出 -1;若輸入的「日」有誤請輸出 -2

輸出格式
共會輸出 n 個數字。我們用 0 代表星期日,1 代表星期一,以此類推。若輸入的「月」
有誤請輸出 -1;若輸入的 「月」無誤但「日」有誤請輸出 -2。(數字間留一個空白)
我已經成功寫出可以算出正確答案的程式了
想要寫得更好 我覺得我的程式架構好像有點龐大...不知道該怎麼精簡
想請問比較資深的前輩有什麼意見
或是類似的問題有其他解法
用這個程式去跑題目給的各種數字答案都對所以內容應該是沒問題
只剩下把程式本身寫得更完美了
程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/Sd8rGs
作者: idiont (supertroller)   2016-07-04 06:27:00
http://ideone.com/HBq15Z 我的寫法 不過可讀性就自己斟酌
作者: ruthertw (小葉老大)   2016-07-02 10:04:00
之前看過算法部分只有一行的神人文
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-07-02 11:21:00
這叫龐大 不要鬧了好嗎 不到一百行哪裡大趕快寫下一個題目 過半年一年再回來想這個問題practice makes perfect 有的事情不需要馬上達成
作者: Schottky (順風相送)   2016-07-02 11:43:00
看起來沒什麼大問題,如果只是要刻意把程式碼的長度縮減我是覺得沒必要啦...我會想改善的方向是 1.演算法效能 2.流程清晰易維護而這兩點你的程式沒什麼好挑剔的。往前走做下一題吧!
作者: bibo9901 (function(){})()   2016-07-02 17:27:00
可以把潤年最後處理這樣你switch-case 就清晰很多
作者: b0920075 (Void)   2016-07-03 14:31:00
我記得有個比賽是壓低程式碼的,你想參加嗎XDDD
作者: oread168 (大地的精靈R)   2016-07-03 21:51:00
可是寫成一行我覺得更難看了啊xd
作者: leoloveivy (cried)   2016-07-04 00:05:00
你先寫一個程式啊計算所有結果啊然後直接查表這樣你要嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com