Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这只是一个小案子就失败了?问题链接-https://www.hackerearth.com/problem/algorithm/chandu-and-his-interns/description/#c190148_C++_Algorithm_Integer Division_Number Theory - Fatal编程技术网

C++ 为什么这只是一个小案子就失败了?问题链接-https://www.hackerearth.com/problem/algorithm/chandu-and-his-interns/description/#c190148

C++ 为什么这只是一个小案子就失败了?问题链接-https://www.hackerearth.com/problem/algorithm/chandu-and-his-interns/description/#c190148,c++,algorithm,integer-division,number-theory,C++,Algorithm,Integer Division,Number Theory,为什么这只是一个小案子就失败了?问题链接- 其他所有案件都没有问题。 我把除数少于4的三种情况都考虑进去了。(素数、1和素数的平方) #包括 使用名称空间std; #为(i=0;i>n; int max=10000009; 整数素数[max]; int j; 对于(int i=2;i*i x; t=sqrt(x); if(素数[x]==0) CUT< P>您应该将这2行在代码之外>主< /代码>函数中移动,并重命名 max >代码>变量,因为它将变得模棱两可。此外,Max 变量应该是常数< />

为什么这只是一个小案子就失败了?问题链接- 其他所有案件都没有问题。 我把除数少于4的三种情况都考虑进去了。(素数、1和素数的平方)

#包括
使用名称空间std;
#为(i=0;i>n;
int max=10000009;
整数素数[max];
int j;
对于(int i=2;i*i x;
t=sqrt(x);
if(素数[x]==0)

CUT< P>您应该将这2行在代码之外>主< /代码>函数中移动,并重命名<代码> max >代码>变量,因为它将变得模棱两可。此外,Max 变量应该是<代码>常数< /> >,因为ISO C++禁止可变长度数组:

int max=10000009;
int prime[max];
所以应该是这样的

const int maximum=10000009;
int prime[maximum];
然后它通过了所有测试用例


这样大的数组不应该在
main
中分配,除非您不增加堆栈大小或使用动态内存分配,否则将导致堆栈溢出。您可以阅读更多有关这方面的信息。

这似乎是堆栈溢出

您正在堆栈上分配主数组

失败的测试用例用于接近主数组末尾的值9999863

如果将行移动到非基于堆栈的分配,例如通过

static int prime[10000009];

然后所有测试都通过。

请提供您使用的实际输入、实际输出和预期输出的列表。否则,很难理解什么是“角落案例”你的意思是,那些定义是梅西……/我建议使用标准C++,避免任何扩展,比如可变长度数组。请不要重新定义语言关键字,如果你这样做,甚至不应该编译。@ vunpult它是未定义的行为,所以标准允许编译器做任何事情。
static int prime[10000009];