20分,哪错了?

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

GuoJZ2010 @ 2022-01-23 17:03:38

以下是代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[9],n,sum=0;
    for(int i=0;i<10;i++) cin >> a[i];
    cin >> n;
    for(int i=0;i<10;i++) if(a[i]<n) sum+=1;
    cout<<sum<<endl;
    return 0;
}

by GuoJZ2010 @ 2022-01-23 17:09:21

各位,改了一下,现在30分【捂脸】

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[9],n,sum=0;
    for(int i=0;i<10;i++) cin >> a[i];
    cin >> n;
    n+=30; 
    for(int i=0;i<10;i++) if(a[i]<=n) sum+=1;
    cout<<sum<<endl;
    return 0;
}

by zhongcy @ 2022-01-23 17:51:36

@GuoJZ2010

int a[9];

a数组范围太小,应改成10以上


by van_Dijk @ 2022-02-13 12:56:44

@GuoJZ2010

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[11],n,sum=0;
    for(int i=0;i<10;i++) 
     cin >> a[i];
    cin >> n;
    n+=30; 
    for(int i=0;i<10;i++)
      if(a[i]<=n) 
            sum+=1;
    cout<<sum<<endl;
    return 0;
}

by Programmer_1745 @ 2022-02-13 16:36:56

数组下标越界了(严重)

在C++语言里呢,下标越界通常不会报错(这里又想表扬python了),所以有时候连信奥的大佬们也会犯这样的错

这种情况呢,推荐开大一点(比如100,我喜欢开到110,当然不要太过分开到9999999之类的,也算一种好习惯吧)

希望对你有帮助~


by czk111 @ 2022-02-19 21:54:20

数组越界 我今年13岁


by F_C_ @ 2022-03-12 19:09:26

@czk111 所以呢


by Sunny567 @ 2022-03-25 18:52:20

把第4行的

int a[9],n,sum=0;

改成

int a[10],n,sum=0;

就好了


by GuoJZ2010 @ 2022-04-02 18:28:02

感谢大家,已经会了。


|