搜索
查看: 741|回复: 10
打印 上一主题 下一主题

新手求解释

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-2 11:01:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
int x,s;
scanf("%d",&x);
if(x%4==0) s=366;
else s=365;
k:x++;
if(x%4==0) s=s+366;
else s=s+365;
if(x<2001) goto k;
printf("%d",s);
计算某年1月1日到2000.12.31为什么会多了一年?帮帮忙

最佳答案

查看完整内容

闰年的判断不对 if((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0))) 另外不要乱用goto,这分明就一个迭代能写完的东西 for( scanf("%d", &x); x < 2001; ++x) if((x % 400 == 0) || ((x % 100 != 0) && (x % 4 == 0))) s += 366; else s += 365;
沙发
发表于 2014-4-2 11:01:33 | 只看该作者
闰年的判断不对
if((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0)))

另外不要乱用goto,这分明就一个迭代能写完的东西

for( scanf("%d", &x); x < 2001; ++x)
  if((x % 400 == 0) || ((x % 100 != 0) && (x % 4 == 0)))
    s += 366;
  else
    s += 365;
板凳
发表于 2014-4-2 13:57:28 来自手机 | 只看该作者
如果算法没错思路也没错,把2001改成2000不就成了
地板
发表于 2014-4-2 14:01:23 来自手机 | 只看该作者
以上胡说的莫信,,
5#
发表于 2014-4-2 14:01:23 来自手机 | 只看该作者
以上胡说的莫信,,
6#
发表于 2014-4-2 20:37:23 | 只看该作者
int x,s=0; scanf("%d",&x); k: if(x%4==0) s=s+366; else s=s+365; x++; if(x<2013) goto k; printf("%d",s);
7#
发表于 2014-4-2 20:38:04 | 只看该作者
这样就行了
8#
 楼主| 发表于 2014-4-2 21:13:11 | 只看该作者
rosynirvana 发表于 2014-4-2 19:13
闰年的判断不对
if((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0)))

我知道闰年判断错了!我以为闰年只是4的倍数!,只看到第五章还没学循环!还是谢谢了!
9#
 楼主| 发表于 2014-4-2 21:14:18 | 只看该作者
rosynirvana 发表于 2014-4-2 19:13
闰年的判断不对
if((y % 400 == 0) || ((y % 100 != 0) && (y % 4 == 0)))

恩恩!了解,谢谢了!!
10#
 楼主| 发表于 2014-4-2 21:17:07 | 只看该作者
李掌柜 发表于 2014-4-2 13:57
如果算法没错思路也没错,把2001改成2000不就成了

是的!2000加1后变成2001,2001的也算进去了!李掌柜先生真逗!

点评

嘿嘿,和你开玩笑的呢  发表于 2014-4-3 17:36
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表