标题:输出闰年问题,if嵌套问题
只看楼主
BobMaster
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-1-4
结帖率:85.71%
已结贴  问题点数:20 回复次数:6 
输出闰年问题,if嵌套问题
要求:
      输出2000-3000年的闰年,10个一行
      闰年满足:能被4或400整除,但不能被100整除
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a, b=0;
    for (a = 2000; a <= 3000; a++);
    {if ((a % 4 )== 0 && (a % 100) !== 0 || a % 400 == 0)
        b++;
    if (b % 10 == 0)printf("\n");
    else    printf("%d ", a);
    }
    system("pause");
    return 0;
}
结果:未显示结果
搜索更多相关主题的帖子: 输出 闰年 if 嵌套 include 
2018-01-04 02:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
    //for (a = 2000; a <= 3000; a++);
    //{if ((a % 4 )== 0 && (a % 100) !== 0 || a % 400 == 0)
    for (a = 2000; a <= 3000; a++)
    {if ((a % 4 )== 0 && (a % 100) != 0 || a % 400 == 0)
2018-01-04 07:53
BobMaster
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-1-4
得分:0 
回复 2楼 吹水佬
嗯,是没语法错误了
可还是输不出东西啊
2018-01-05 20:49
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:10 
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int index = 0;

    for(int year = 2000; year <= 3000; year++)
    {
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
        {
            index++;
            printf("%d", year);
            if(index % 10 != 0)
                printf("  ");
            else
                printf("\n");
        }
    }
    if(index % 10 != 0)
        printf("\n");

    return 0;
}
2018-01-05 21:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
以下是引用BobMaster在2018-1-5 20:49:26的发言:

嗯,是没语法错误了
可还是输不出东西啊

是不是闰年都输出,这样:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a, b=0;
    for (a = 2000; a <= 3000; a++)
    {
        if ((a % 4 )== 0 && (a % 100) != 0 || a % 400 == 0)
        {
            printf("%d ", a);
            b++;
            if (b % 10 == 0)
                printf("\n");
        }
    }
    system("pause");
    return 0;
}
2018-01-05 21:31
BobMaster
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-1-4
得分:0 
回复 5楼 吹水佬
还是不行
2018-01-12 00:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
试试这个~

程序代码:
#include<stdio.h>
#include<stdio.h>

void Fun();

int main( void )
{
    Fun();

    return 0;
}

void Fun()
{
    #define BEGIN 2000
    #define END 3000
    #define NEW_LINE 10

    #define FOR_BEGIN(i,begin,end)    \
        for (i=begin;i!=end;++i)

    #define IS_LEAP_YEAR(year)    \
        ((((year)%4==0)&&((year)%100!=0))||((year)%400==0))  

    const char* format[]=
    {
        "%u ",
        "\n"
    };

    #define PRINTF_YEAR(year,line_count)    \
        printf(format[!(line_count%(NEW_LINE+1))],(unsigned)(year-=!(line_count%(NEW_LINE+1))))  

    size_t i;
    unsigned j=1;

 
    FOR_BEGIN(i,BEGIN,END+1)
        if (IS_LEAP_YEAR(i))
            j+=!!PRINTF_YEAR(i,j);

    puts("");

    #undef BEGIN
    #undef END
    #undef NEW_LINE
    #undef FOR_BEGIN
    #undef PRINTF_YEAR
}


或者~
程序代码:
#include<stdio.h>

void Fun();

int main( void )
{
    Fun();

    return 0;
}

void Fun()
{
    #define BEGIN 2000
    #define END 3000
    #define NEW_LINE 10

    #define FOR_BEGIN(i,begin,end)    \
        for (i=begin;i!=end;++i)

    #define IS_LEAP_YEAR(year)    \
        ((((year)%4==0)&&((year)%100!=0))||((year)%400==0))  

    const char* format[]=
    {
        "%u ",
        "%u\n"
    };

    size_t i;

 
    FOR_BEGIN(i,BEGIN,END+1)
        if (IS_LEAP_YEAR(i))
        { 
            #define LEAP_YEAR_NUM(year)    \
                ((year)/4-(year)/100+(year)/400)
                
            #define IS_NEW_LINE(begin,year)    \
                (!((LEAP_YEAR_NUM(year)-LEAP_YEAR_NUM(begin)+1)%NEW_LINE))

             #define PRINTF_YEAR(year)    \
                 printf(format[IS_NEW_LINE(BEGIN,year)],(unsigned)year)  

            PRINTF_YEAR(i);
            

            #undef LEAP_YEAR_NUM
            #undef IS_NEW_LINE
            #undef PRINTF_YEAR

                
        }

    puts("");

    #undef BEGIN
    #undef END
    #undef NEW_LINE
    #undef FOR_BEGIN
}



[此贴子已经被作者于2018-1-12 15:12编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-01-12 13:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483950-1-1.html




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

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