| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3057 人关注过本帖
标题:判断闰年程序,如何判断多次?
取消只看楼主 加入收藏
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
判断闰年程序,如何判断多次?
//编写闰年判断程序
#include<stdio.h>
int main(void)
{
    unsigned int year;
    printf("请输入有效年份:\n");
    scanf("%d", &year);
    if (year % 4 != 0)
       printf("%d不是闰年。\n", year);
    else if (year % 4 == 0 && year % 100 != 0)
       printf("%d是闰年。\n", year);
    else if (year % 400 == 0)
       printf("%d是闰年。\n", year);
    printf("请再次输入有效年份:\n");
    scanf("%d", &year);
    return 0;
}
如何使程序在判断某一年后,再次输入任意年能再次判断。先谢过了。
搜索更多相关主题的帖子: include return 如何 
2016-05-07 09:06
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 3楼 qq1023569223
    经验证,确实无法判断1700之类的年份。
    求教:我试着在: else if ((year % 4 == 0) && (year % 100 != 0))加括号也无法判断。这说明是逻辑错误不是语法错误吗?错误的根源在于 if else if无法覆盖所有的闰年集合吗?为什么会出现无法判断的情况?按照我的思路是否无解?
   


C语言自学者(初登殿堂)
2016-05-07 15:32
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 2楼 alice_usnet
    验证你的程序,能循环判断,但第一个输入的年份无法判断。


C语言自学者(初登殿堂)
2016-05-07 15:47
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    附上我在本论坛搜的,最接近我思路的答案。
//编写闰年判断程序
#include<stdio.h>
int main(void)
{
    int year, leap;
    while (scanf("%d", &year) != -1)
    {
        if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 ==0))
             leap = 1;
        else
             leap = 0;
        if (leap == 1)
             printf("%d是闰年。\n", year);
        else
             printf("%d不是闰年。\n", year);
    }
    return 0;
}


C语言自学者(初登殿堂)
2016-05-07 15:49
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    7楼的程序有错误,会把1700等能被4整除,同时也能被100整除的年份判断为闰年。附上我改正后的程序:
//编写闰年判断程序
#include<stdio.h>
int main(void)
{
    unsigned int year;
    printf("请输入有效年份:");
    while(2000 <= scanf("%d", &year) <= 2500)
    {
      if (year % 4 != 0)
       printf("%d不是闰年。\n", year);
      else if ((year % 4 == 0) && (year % 100 != 0))
       printf("%d是闰年。\n", year);
      else if (year % 400 == 0)
       printf("%d是闰年。\n", year);
      else
       printf("%d不是闰年。\n", year);
      printf("请再次输入要判断的年份:");
    }
    return 0;
}


C语言自学者(初登殿堂)
2016-05-08 13:55
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    最后附上我的思路的答案,自己修改完善了。作为初学者,还是减少了变量的使用,少用循环嵌套。(这个是改正7楼的程序,上楼是我自己思路改写的)
//编写闰年判断程序
#include<stdio.h>
int main(void)
{
    unsigned int year, leap;
    printf("请输入要判断的年份:");
    while (scanf("%d", &year) != -1)
    {
        if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 ==0))
             leap = 1;
        else
             leap = 0;
        if (leap == 1)
             printf("%d是闰年。\n", year);
        else
             printf("%d不是闰年。\n", year);
        printf("请再次输入要判断的年份:");
    }
    return 0;
}


C语言自学者(初登殿堂)
2016-05-08 14:01
快速回复:判断闰年程序,如何判断多次?
数据加载中...
 
   



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

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