求大佬解答

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

喜儿 @ 2019-04-01 19:48:50

#include<iostream>
using namespace std;
int main(){
    int apple[10],height,cnt=0;
    for(int i=1;i<=10;i++)
    cin>>apple[i];
    cin>>height;
   for(int j=0;j<10;j++){
       if(height+30>=apple[j]) cnt++;
   }
   cout<<cnt<<endl;
   return 0;
}

求大佬解答,为什么只有30分呀??


by 灵光一闪 @ 2019-04-01 20:03:24

@喜儿

数组越界了!应该是RE了7个点吧


by wangjunze @ 2019-04-01 20:04:39

数组要自动清零,设全局变量


by 喜儿 @ 2019-04-01 20:05:08

@洛谷亿岁 0-9不是10个吗?为什么会越界呀


by 喜儿 @ 2019-04-01 20:06:11

@wangjunze 怎么清零?


by aminoas @ 2019-04-01 20:06:20

@喜儿 数组开大些!还有你的循环变量写错了


by 喜儿 @ 2019-04-01 20:08:46

@2018J1605 哪里的循环变量?我还是不懂,需要输入10个数表示苹果,我给了10个应该是刚好的呀?


by 灵光一闪 @ 2019-04-01 20:09:11

@喜儿

但你是从1输到10的呀,你这个只有0到9

建议 你下次数组开外面并且多开几个:

如:数据范围:1~100,你可以开个[110],但不要开太多,我一般10000级别的多开200,总之你看着多看一点,不要卡着范围开


by 灵光一闪 @ 2019-04-01 20:11:21

@喜儿


for(int i=1;i<=n;i++)
        ^循环变量

by 喜儿 @ 2019-04-01 20:13:53

@洛谷亿岁 我把数组开大了,但是还是部分分,没有满分


by 喜儿 @ 2019-04-01 20:15:41

感谢你们,已经成功了,是因为我的循环变量第一个for里面是从1开始,后面是从0开始,导致的错误。


| 下一页