"foo++;" 让我的质数查找器崩溃

"foo++;" crashes my prime number finder

今天我试着做一个程序,试图找到质数,将它们添加到数组:"arraiki",然后通过比较数组:"arraiki" 和自动填充的数组来检查它是否正常工作: "myInput"。 但不幸的是,当我试图更改 temp 的值时,它会自行崩溃,即数组的索引:"arraiki".

迷你版。

int temp = 0;

{

  loop, if...

  arraiki[temp] = i;

  temp++;

}

完整代码:

#include <iostream>

using namespace std;

string prime(int &range)

{
string answer="";

for (int i=2; i<range; i++)
{
    if (range%i==0) answer = "NOPE";
}

if(answer=="NOPE") return "NAH";
else return "TRUTH";
}



int main()
{

int arraiki[] = {};
int myInput[] = {2,5,7};
int temp = 0;

for (int i = 2; i<100; i++)
{
    if(prime(i)=="TRUTH")
    {
        arraiki[temp] = i;
/// --> causes problem     temp++;

/*error.log()*/ cout << "temp is: " << temp << " value of arraiki is:     " <<arraiki[temp] << " and i: " << i <<  endl;
    }

}



/// SOON ™
/*
for (int =0; i<(sizeof(arraiki)/sizeof(arraiki[0])); i++)
{
     if(arraiki[i]==myInput[i])

                            cout << "OK AT: " << i << endl;

            else
                            cout << "SMTH WENT WRONG AT: " << i << endl;
}
*/
return 0;

}

temp++ 错误 "log";已关闭

temp 是:0 arraiki 的值是:2 和 i:2

temp is: 0 arraiki 的值是: 3 and i: 3

temp 是:0 arraiki 的值是:5 和 i:5

temp 是:0 arraiki 的值是:7 和 i:7

temp 是:0 arraiki 的值是:11 和 i:11

temp is: 0 arraiki 的值是: 13 and i: 13

temp 是:0 arraiki 的值是:17 和 i:17

temp 是:0 arraiki 的值是:19 和 i:19

temp is: 0 arraiki 的值是: 23 and i: 23

temp 是:0 arraiki 的值是:29 和 i:29

(...)

temp is: 0 arraiki 的值是: 97 and i: 97

所以,它正确显示素数。

PS:我可以做得更好吗?请诚实。

我不确定你使用的是什么语言,但它看起来像 C++。如果是,则必须先声明 arraiki 中的元素数,然后才能对数组使用非零索引。尝试:

int arraiki[100] ;

而不是

int arraiki[] = {};