我遇到了一些麻烦。我写了一个代码来查找一个数字的素数,但由于某种原因,它给了我一个错误,我没有定义我将使用的数组中的元素数量。是否可以使用不限制元素数量的数组?谢谢:))
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
using namespace std;
int primer(int max);
int main()
{
system("pause");
return 0;
primer(1000);
}
int primer(int max){
int a[]=2;
for (int i=2;i<=max;i++){
prime=true;
for (int ii=1;ii<=#a;ii++) {
if i/a[ii]==math.floor(i/a[ii]) {
prime=false;
}
}
if prime==true {
a[#a+1]=i;
}
}
for (i=1;i<=#a;i++) {
print(a[i]);
}
}
}
答案 0 :(得分:6)
是。使用std::vector
或std::deque
。
答案 1 :(得分:1)
你到处使用的这个#符号是什么?
您的第int a[]=2
行不正确。
您需要指定数组的大小。例如,int a[100]
或
int a[] = {Values here}
。
话虽这么说,你可能想要一个像vector类一样的灵活大小的数组。
答案 2 :(得分:1)
编译器需要知道要分配多少空间,因此需要您说明您拥有的元素数量。
您可以尝试使用STL向量而不是数组。这允许您根据需要添加任意数量的元素,而无需在开头声明数字。
答案 3 :(得分:1)
如果只是为数组分配的内存量,你总是'有限'。
话虽如此,使用std::vector
可能会没问题。