越看越怪

P5737 【深基7.例3】闰年展示

Joseph_J @ 2023-07-04 15:26:29

#include<bits/stdc++.h>

using namespace std;
int num=0;     //计数器 
int ye[10001];       //后面用的数组 
bool year(int x,int y){        //判断闰年的自定义函数 

    cin>>x>>y;

    1582<=x; x<y; y<=3000;    //数据规模 

    for(int i=x;i<=y;i++){      //逐个测试 

        if((i%4==0)&&(i%100==0)){    //判断是否为闰年 

            if(i%400==0) {      //四百年不闰 
            year(x,y)==false;
            }
            else{
            year(x,y)==true;
            num++;      //若为真,计数器++ 
            ye[num]=i;      //存入数组 
            } 
        }
    }

    cout<<num<<endl;        //题目要求 

    for(int r=1;r<=num;r++){        //循环取出数组中的数 
        cout<<ye[r]<<' ';
    }

}

int main(){

    int x,y;        //重新定义(覆盖) 

    year(x,y);      //代入自定义函数 

    return 0;       //不太华丽的结束 
}

by Joseph_J @ 2023-07-04 15:27:00

哪位神仙指个路


by As_Snow @ 2023-07-04 15:34:07

@s1mple__navi 一百年不闰,四百年闰


by As_Snow @ 2023-07-04 15:35:37

另外你的伪代码写的很好看


by xUwT @ 2023-07-04 15:39:01

删了加个注释又发出来没必要吧

首先

1582<=x; x<y; y<=3000;

为什么不写注释

其次

if((i%4==0)&&(i%100==0)){

            if(i%400==0) {
            year(x,y)==false;
            }
            else{
            year(x,y)==true;
            num++;
            ye[num]=i;
            } 
        }

判断错误


by gfgoodluck @ 2023-07-04 15:47:21

@xuwt 他可能甚至把<=当成了一行代码


by Joseph_J @ 2023-07-04 16:18:22

刚刚改了一下发现输出不了(悲

#include<bits/stdc++.h>

using namespace std;
int num=0;     //计数器初始化 
int ye[10001];       //后面用的数组 
bool year(int x,int y){        //判断闰年的自定义函数 

    1582<=x; x<y; y<=3000;    //数据规模 

    for(int i=x;i<=y;i++){      //逐个测试 

        if((i%4==0)&&(i%100!=0)){    //判断是否为闰年 

            if(i%400==0){

                year(x,y)==true;
                ye[num++]=i;
            }
        }else{

            year(x,y)==false;   
        }
    }

    cout<<num<<endl;        //题目要求 

    for(int r=1;r<=num;r++){        //循环取出数组中的数 
        cout<<ye[r]<<' ';
    }

}

int main(){

    int x,y;        //重新定义(覆盖) 
    cin>>x>>y;

    year(x,y);      //代入自定义函数 

    return 0;       
}

by xUwT @ 2023-07-04 16:19:01

@gfgoodluck :P


by xUwT @ 2023-07-04 16:20:33

        if((i%4==0)&&(i%100!=0)){    //判断是否为闰年 

            if(i%400==0){

                year(x,y)==true;
                ye[num++]=i;
            }
        }else{

            year(x,y)==false;   
        }

还是有问题

(i%4==0)&&(i%100!=0)

i%400==0

应为并列条件


by xUwT @ 2023-07-04 16:22:46

并且

i%400==0

i%100!=0

相悖,所以你没输出

另外

能不能把你的 //数据规模 那行删掉


|