当int a[N]放在主函数里面和外面的运行结果不一样!这是为什么呢?


#include
#define N 10000
using namespace std;


int sushu(int n){
    for(int i=2;iif(n%i==0){
            return 0;
        }
    }
    return 1;
}
int main(){
    int a[N];//这个放在里面和放在全局变量的位置会出现不同的结果。放在里面是210,还有几率出现67。但是放在全局变量就只会出现210。
    a[0]=0;
    a[1]=0;    
    int key=0;
    for(int i=2;i<10000;i++){
        a[i]=sushu(i);
    }
    
    for(int cha=2;;cha++){
        for(int i=2;i<10000;i++){
            for(int k=0;k<10;k++){
                if(a[i+k*cha]){
                    key++;
                }
//                if(sushu(i+k*cha)){
//                    key++;
//                }
                else break;
            }
            if(key==10){
                break;
            }
            else key=0;
        }
        if(key==10){
            cout<return 0;
        }
    }
    
}









题目要求是什么,看看是不是存在数组越界
定义在全局变量上,可能不至于破坏main里的其他局部变量,而定义在main里,改写了别的变量的内存,导致混乱了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^