[问题] 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