鱼C论坛

 找回密码
 立即注册
查看: 4377|回复: 7

一个计算星期几的问题~~

[复制链接]
发表于 2013-8-6 21:11:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入一个年,月,日,计算出这天是星期几~~我把闰年和平年给算上后。。代码没有写完
自己调式下年份。得到的结果和现在的年份对不上。。不知道哪里的问题
从公元元年开始计算的~
  1. int nian;
  2.         int tianshu=0;
  3.         int i;
  4.         printf("输入年:");
  5.         scanf("%d",&nian);
  6.         for (i=1;i<nian-1; i++)
  7.         {
  8.                 if (i%4==0 && i%100!=0 || i%400==0)
  9.                 {
  10.                         tianshu+=366;
  11.                 }
  12.                 else
  13.                 {
  14.                         tianshu+=365;
  15.                 }
  16.         }
  17.         printf("%d\n",tianshu);
  18.         printf("%d\n",tianshu=tianshu%7);
  19.         return 0;
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-7 08:50:12 | 显示全部楼层
for循环条件设为i<nian
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:09:24 | 显示全部楼层
那样会少计算一年的。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:09:57 | 显示全部楼层
本帖最后由 ymgsk123 于 2013-8-7 14:17 编辑

有人给我说   我这个模型 有一个逻辑BUG 就是 输入X年的 1月1号必须是星期1
不晓得你明白不    这个我不太理解啊。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-7 15:53:37 | 显示全部楼层

自己好好想想吧
对你的代码:for(i=1;i<nian-1;i++){}
如果输入年份是公元2年,你这循环还会执行么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-7 15:57:11 | 显示全部楼层
ymgsk123 发表于 2013-8-7 14:09
有人给我说   我这个模型 有一个逻辑BUG 就是 输入X年的 1月1号必须是星期1
不晓得你明白不    这个我不太 ...

你得把你所有完整代码贴出来,才看得出你的判断思路到底是咋样的,按你这部分代码,我感觉你的基准日选择的是公元元年的元旦?否则你用那句for循环做啥。
不过你知道元年元旦是周几么?我本来以为肯定是周一,但百度了一下发现不是,很有趣
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 16:17:06 | 显示全部楼层
额。。我也百度了下。。。。不过没找到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-8 13:34:43 | 显示全部楼层
  1. int nian;
  2.         int tianshu=0;
  3.         int i;
  4.         printf("输入年:");
  5.         scanf("%d",&nian);
  6.         for (i=1;i<nian; i++)/*nian-1改为nian 要么< 改为 <=*/
  7.         {
  8.                 if (i%4==0 && i%100!=0 || i%400==0)
  9.                 {
  10.                         tianshu+=366;
  11.                 }
  12.                 else
  13.                 {
  14.                         tianshu+=365;
  15.                 }
  16.         }
  17.         printf("%d\n",tianshu);
  18.         printf("%d\n",tianshu=tianshu%7);
  19.         return 0;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-16 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表