[問題] 計算日期的問題消失

看板C_and_CPP作者時間7年前 (2016/07/02 04:06), 7年前編輯推噓3(3012)
留言15則, 8人參與, 最新討論串1/1
開發平台(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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 66.86.130.129 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1467403580.A.FCE.html ※ 編輯: nikuman (66.86.130.129), 07/02/2016 09:35:54

07/02 10:04, , 1F
之前看過算法部分只有一行的神人文
07/02 10:04, 1F

07/02 11:21, , 2F
這叫龐大 不要鬧了好嗎 不到一百行哪裡大
07/02 11:21, 2F

07/02 11:22, , 3F
趕快寫下一個題目 過半年一年再回來想這個問題
07/02 11:22, 3F

07/02 11:23, , 4F
practice makes perfect 有的事情不需要馬上達成
07/02 11:23, 4F

07/02 11:43, , 5F
看起來沒什麼大問題,如果只是要刻意把程式碼的長度縮減
07/02 11:43, 5F

07/02 11:44, , 6F
我是覺得沒必要啦...
07/02 11:44, 6F

07/02 11:55, , 7F
我會想改善的方向是 1.演算法效能 2.流程清晰易維護
07/02 11:55, 7F

07/02 11:56, , 8F
而這兩點你的程式沒什麼好挑剔的。往前走做下一題吧!
07/02 11:56, 8F

07/02 17:27, , 9F
可以把潤年最後處理
07/02 17:27, 9F

07/02 17:30, , 10F
這樣你switch-case 就清晰很多
07/02 17:30, 10F
不好意思我不太懂為什麼把閏年最後處理會讓switch-case清晰 這是對電腦來說還是對看程式碼的人來說呢

07/03 14:31, , 11F
我記得有個比賽是壓低程式碼的,你想參加嗎XDDD
07/03 14:31, 11F

07/03 21:51, , 12F
可是寫成一行我覺得更難看了啊xd
07/03 21:51, 12F

07/04 00:05, , 13F
你先寫一個程式啊計算所有結果啊
07/04 00:05, 13F

07/04 00:05, , 14F
然後直接查表這樣你要嗎?
07/04 00:05, 14F

07/04 06:27, , 15F
http://ideone.com/HBq15Z 我的寫法 不過可讀性就自己斟酌
07/04 06:27, 15F
這個好精簡! 感謝分享 ※ 編輯: nikuman (66.86.130.129), 07/04/2016 07:13:08
文章代碼(AID): #1NTiqy_E (C_and_CPP)