| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 159 人关注过本帖
标题:输出闰年问题,if嵌套问题
只看楼主 收藏
BobMaster
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
结帖率:100%
  已结贴   问题点数: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;
}
结果:未显示结果
2018-01-04 02:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:123
帖 子:5156
专家分:21539
注 册: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
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
  得分:0 
回复 2楼 吹水佬
嗯,是没语法错误了
可还是输不出东西啊
2018-01-05 20:49
八画小子
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:479
专家分:1149
注 册: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
等 级:版主
威 望:123
帖 子:5156
专家分:21539
注 册: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
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-4
  得分:0 
回复 5楼 吹水佬
还是不行
4 天前 00:08
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:28
帖 子:4129
专家分:11772
注 册: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]/*~链表重灾区~2018-01-06更~*/[/code]
4 天前 13:14







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

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