40分 蒟蒻求助 帮 找 哪里 错了 谢 佬

P1046 [NOIP2005 普及组] 陶陶摘苹果

homoteam_ikun @ 2023-01-08 16:23:39

rt 代码如下我怎么什么题都不会 我什么都做不到

#include<iostream>
using namespace std;
int main(){
    int a[114],sum,b;
    for(int i=0;i<10;i++){
        cin>>a[i];
    }
    cin>>b;
    for(int i=0;i<10;i++){
        if(a[i]>b){
            if(b+30>a[i]){
                sum+=1;
            }
        }
        sum+1;
    }
    cout<<sum;
    return 0;
}

这是评测记录


by Cindy_Li @ 2023-01-08 16:42:32

楼上正解


by homoteam_ikun @ 2023-01-08 16:43:25

@while_true 额 下次一定 自己的代码雀食要自己改


by Cindy_Li @ 2023-01-08 16:47:06

@homoteam_ikun 其实我的意思是把循环改成

for(int i=0;i<10;i++){
    if(b+30>=a[i]) sum++;
}

显然b+30>=a[i]包含了b>=a[i]的情况,所以无需分类讨论


by homoteam_ikun @ 2023-01-08 16:51:38

@xinyulicindy0608 这下样例过了 变全wa了这是评测记录


by Cindy_Li @ 2023-01-08 16:53:30

@homoteam_ikun 看到了,我给你加了一行sum=0就过了

评测记录


by homoteam_ikun @ 2023-01-08 16:54:35

@xinyulicindy0608 感谢 此题已ac 此贴终


by Cindy_Li @ 2023-01-08 16:54:51

@homoteam_ikun 在主函数里定义变量一定要初始化,否则计算机会随机给你一个值,很可能不是0


by homoteam_ikun @ 2023-01-08 16:56:45

@xinyulicindy0608 拿出笔记本记下.ing


by Cindy_Li @ 2023-01-08 16:59:05

@homoteam_ikun 建议养成变量定义在全局的好习惯

意思就是写在

using namespace std;

的下面

尤其是数组(以后会遇到大空间的数组,不能定义在函数里)


by Cindy_Li @ 2023-01-08 17:02:03

@homoteam_ikun 全局变量默认是0,但仍然建议初学的时候把sum ans等累加累乘的变量在函数里赋初值0(加减)或1(乘除)


上一页 | 下一页