大神帮我看一下这个代码哪里出问题了啊?

miecuiqi8751 2018-09-06 04:49:06
void getPrime(int n) {
if(n <= 0) return;
bool arr[n+1];

for(int i = 2; i <= n; i++)
arr[i] = true;
for(int i = 2; i <= n; i++) {
if(arr[i]) {
for(int m = i+1; m <= n; m++) {
if(m%i==0)
arr[m]==false;
}
}
}
int cnt = 0;
for(int i = 1; i <= n; i++){
if(arr[i]) {
cout << i << " ";
cnt++;
}
if(cnt%10==0)
cout << endl;
}
cout << endl << cnt << endl;

}

int main()
{
getPrime(10);
return 0;
}
...全文
453 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
汗水与勇气 2018-09-10
  • 打赏
  • 举报
回复
顶楼上,
你这里 bool arr[n+1]; 的n不是常量,数组是不能这样定义的,应该使用动态数组
zhongchengli 2018-09-10
  • 打赏
  • 举报
回复
用数组就用动态数组 ,用其他容器list等。
棉猴 2018-09-07
  • 打赏
  • 举报
回复
getPrime()函数中声明arr数组时有错误。


在声明arr数组时,数组的维数n+1不是常量表达式。
可以考虑使用new实现动态分配内存的方式
void getPrime(int n) {
if (n <= 0) return;
bool *arr = new bool[n + 1];//--------动态分配内存-------

for (int i = 2; i <= n; i++)
arr[i] = true;
for (int i = 2; i <= n; i++) {
if (arr[i]) {
for (int m = i + 1; m <= n; m++) {
if (m%i == 0)
arr[m] == false;
}
}
}
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (arr[i]) {
cout << i << " ";
cnt++;
}
if (cnt % 10 == 0)
cout << endl;
}
cout << endl << cnt << endl;
delete[]arr;//---------释放内存--------------
arr = NULL;//---------复位指针-------------
}

程序运行的效果如下所示

请参考《C++中使用关键字new动态分配数组》
希望能够帮到你
ztenv 版主 2018-09-06
  • 打赏
  • 举报
回复
请说出你的问题
内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及与主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理与调度方案优化。该模型能够有效平衡经济性与环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成与优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模与求解实践,助用户掌握MOPSO在实际工程问题中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例与技术支撑; 阅读建议:建议读者结合Matlab代码与理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析与结果可视化,并可通过调整能源配置或引入新约束进行二次开发与创新研究。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧