这个问题,怎么回事儿啊?

RookieAC 2008-03-09 10:46:38
前天在这个板块看到一个帖子!
代码是这样的!
#include <iostream>
#include <fstream>
using namespace std;


int main()
{
const int LENGTH=500;
bool Array[LENGTH]={false};

ofstream FILE("Result.txt",ios::app);
for (int i=2;i<=LENGTH;++i)
{
if (Array[i]==false)
{
cout<<i<<" ";
FILE<<i<<" ";
for (int j=i*i;j<=LENGTH;j+=i)//HERE!筛选法求素数!
{
Array[j]=true;
}
}
}
cout<<endl;
FILE<<endl;
FILE.close();

return 0;
}


运行正常!然后,我改成这样的之后,就说是错误了!怎么回事儿么?


#include <iostream>
#include <fstream>
using namespace std;


int main()
{
int LENGTH;
cin>>LENGTH;
bool Array[LENGTH]={false};

ofstream FILE("Result.txt",ios::app);
for (int i=2;i<=LENGTH;++i)
{
if (Array[i]==false)
{
cout<<i<<" ";
FILE<<i<<" ";
for (int j=i*i;j<=LENGTH;j+=i)//HERE!筛选法求素数!
{
Array[j]=true;
}
}
}
cout<<endl;
FILE<<endl;
FILE.close();

return 0;
}



提示说E:\Essential C++\Chaos\质数\prime.cpp(12) : error C2057: expected constant expression
E:\Essential C++\Chaos\质数\prime.cpp(12) : error C2466: cannot allocate an array of constant size 0
...全文
51 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
moss830704 2008-03-09
  • 打赏
  • 举报
回复
int in_LENGTH;
cin> > in_LENGTH;
const int LENGTH=in_LENGTH;
bool Array[LENGTH]={false};
moss830704 2008-03-09
  • 打赏
  • 举报
回复
数组的维数值必须是常量表达式
RookieAC 2008-03-09
  • 打赏
  • 举报
回复
我是吧

上面的红色部分
const int LENGTH=500;
bool Array[LENGTH]={false};

改成了

int LENGTH;
cin>>LENGTH;
bool Array[LENGTH]={false};

其他没变!


ps: 编辑时候,想把改后的变红,发贴出来后,发现没变色,还加了俩html标签,影响阅读!
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-09 10:46
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下