| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8282 人关注过本帖
标题:判断2000到2500年的每一年是否为闰年,并将结果输出。
只看楼主 加入收藏
隐君子
Rank: 1
等 级:新手上路
帖 子:46
专家分:1
注 册:2011-12-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:38 
判断2000到2500年的每一年是否为闰年,并将结果输出。
题目:判断2000到2500年的每一年是否为闰年,并将结果输出。
参考了论坛里的代码,写了以下代码:
程序代码:
#include<stdio.h>
int main()
{
    int y;
    y=2000;
    while(y<=2500)
    {
    if(((y%4 == 0)&&(y%100 != 0)) || (y%400 == 0))
    printf("%d 年是闰年\n",y);
    else printf("%d 年不是闰年\n",y);
    y=y++;
}
}
但结果只能判断2202到2500年的每一年是否为闰年,为什么?哪里出错啦?还想问一下
程序代码:
if(((y%4 == 0)&&(y%100 != 0)) || (y%400 == 0))
    printf("%d 年是闰年\n",y);
    else printf("%d 年不是闰年\n",y);
    y=y++;
这里的判断语句能有其他写法吗?怎么写?
搜索更多相关主题的帖子: 2000 
2012-01-13 00:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
if(((y%4 == 0)&&(y%100 != 0)) || (y%400 == 0))
你把y=2000代入上面的代碼看看條件是真還是假?

授人以渔,不授人以鱼。
2012-01-13 01:00
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:5 
哈哈 楼主这个有趣

#include<stdio.h>
int main()
{
    int y;

    for(y=0;y<=900;y++)
        
       printf("%d\n", y);
   
}
我简化了下,一样是只能打印602到900这些数,试了下,只能打印循环从后向前的299个printf()的内容。如果从你把2500改成2200,所有的年份都能打印出来,因为2000--2200只有200年在299年之内。很怪哦。


[ 本帖最后由 有容就大 于 2012-1-13 01:20 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-01-13 01:17
隐君子
Rank: 1
等 级:新手上路
帖 子:46
专家分:1
注 册:2011-12-7
收藏
得分:0 
怎样看真假。
2012-01-13 01:22
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
#include <stdio.h>

int main(void)

{
    int y;

    for (y = 1000; y > 0; y--)

    {
        printf("%d\n", y);

        
    }

    return 0;
}
这个无论y从大于299的任何一个数开始,只能打印1--299这些个数。难道是编译器的问题?

梅尚程荀
马谭杨奚







                                                       
2012-01-13 01:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
if(((y%4 == 0)&&(y%100 != 0)) || (y%400 == 0))
先看y%4,因為y=2000,所以y%4=2000%4=0,第一個y%4==0為真;然後看y%00,2000%100=0,因此y%100!=0為假。由於你使用了&&邏輯與運算,那麼必須y%4==0和y%100!=0同時成立,才能為真,現在有一個為假,所以整個條件為假,程序流程跳到else部分。

授人以渔,不授人以鱼。
2012-01-13 01:30
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 6楼 TonyDeng
不是吧 后面还有个或条件呢 2000 % 400 == 0 为真。 可以判断2000年是闰年。

[ 本帖最后由 有容就大 于 2012-1-13 01:35 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-01-13 01:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 有容就大
你腦後有沒有感覺有點冷風?聽沒聽到一點聲音?快關機上床吧,明天太陽出來了再重新寫一個類似的程序看看。

授人以渔,不授人以鱼。
2012-01-13 01:34
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 8楼 TonyDeng
哈哈,我在烤火啊

梅尚程荀
马谭杨奚







                                                       
2012-01-13 01:37
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 8楼 TonyDeng
老大就几行代码你打打运行下嘛 ,嘎嘎!
这次我不会错的。

梅尚程荀
马谭杨奚







                                                       
2012-01-13 01:38
快速回复:判断2000到2500年的每一年是否为闰年,并将结果输出。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026206 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved