代码如下所示,如果int arr[100000]语句放在main函数中,则会出现测试点5无法通过的情况,求解答
#include <stdio.h>
#include <math.h>//sqrt所在的包
int arr[100000];//为什么这句话要放在main函数的外面,如果放在main函数里面则会出现测试点5的错误
int main()
{
int n,i,j,warn;
int num = 0;//统计素数对的个数
int k = 0;//下标
scanf("%d",&n);//读入N
//arr[0] = 0;//可以对数组进行部分初始化,存素数的数组
for (i=2;i<=n;i++)//从最小的素数开始遍历判断
{
warn = 0;
for (j=2;j<=sqrt(i);j++)
{
if (i%j==0)
{
warn = 1;
break;//不是素数
}
}
if (warn==0)//是素数
arr[k++] = i;//存入素数数组
}
for (i=0;i<=n;i++){
if (arr[i+1]-arr[i]==2)
num++;
}
printf("%d",num);
return 0;
}