为什么弄了很多样例都过了,编译也没问题,就是会得40分 (┬_┬)

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

@[songboqian](/user/1236139) 1700,1800,1900...等都不是闰年
by wumingwei @ 2023-12-18 13:54:33


@[songboqian](/user/1236139) ```cpp #include<bits/stdc++.h> using namespace std; int x,y,a,b[1000]; void input(){ cin>>x>>y; } void print(){ for(int i=x;i<=y;i++){ if(i%4==0&&i%100!=0){ b[++a]=i; } else if(i%400==0) { b[++a]=i; } } cout<<a<<endl; for(int j=1;j<=a;j++){ cout<<b[j]<<" "; } } int main(){ input(); print(); return 0; } ```
by ys_kylin__ @ 2023-12-18 13:56:58


我的程序也认定它们不是闰年,我试过了
by songboqian @ 2023-12-18 13:57:23


@[songboqian](/user/1236139) ```cpp else if(i%4==0){ a+=1; b[a]+=i; } ``` 改成: ```cpp else if(i%400==0){ a+=1; b[a]+=i; } ``` 另外数组开小了。
by xiaoshumiao @ 2023-12-18 14:49:16


数组没开小,抱歉。
by xiaoshumiao @ 2023-12-18 14:49:48


@[songboqian](/user/1236139) 你的问题在于四百年的判断有误,不是 `else if(i%4==0)` 而是 `else if(i%400==0)`,剩下不用改,我之前的那个程序就是改完的(AC了)
by ys_kylin__ @ 2023-12-19 12:43:27


AC了,感谢各路网友的讲解!!!!!
by songboqian @ 2023-12-19 12:43:35


@[ys_kylin__](/user/924812) (*^__^*) 嘻嘻
by songboqian @ 2023-12-19 12:45:53


你还差了一个判断,在整百年的时候还需要%400,判断能否被400整除
by shimucheng @ 2023-12-29 21:09:35


@[songboqian](/user/1236139) 实在不行就不要用自定义函数。 ```cpp #include<bits/stdc++.h> using namespace std; int x,y,sum; bool h[3001]; int main(){ cin>>x>>y; for(int i=x;i<=y;++i) if(i%400==0){ sum++; h[i]=1; }else if(i%100==0){ h[i]=0; }else if(i%4==0){ sum++; h[i]=1; } cout<<sum<<endl; for(int i=x;i<=y;++i) if(h[i]==true) cout<<i<<' '; return 0; } ```
by Sci_8633 @ 2024-01-12 22:31:49


| 下一页