gpt4 book ai didi

C++ 程序寻找质数和计时本身

转载 作者:行者123 更新时间:2023-11-28 07:37:33 26 4
gpt4 key购买 nike

我正在尝试编写一个 C++ 程序来查找 n 个质数并自行计算时间。我已经使用此逻辑在其他 5 种语言中完成了此操作。由于某种原因,这段代码什么都不做。我正在使用代码块编译器。是什么导致此代码不起作用,我该如何解决?我对 C++ 不是很熟悉,所以它可能是一些微不足道的东西。

#include <iostream>
#include <math.h>
int main(){
int n=10;
int b=new int[n];
int c=0;
int d=2;
while(c<n){
bool e=true;
for(int i=0;i<c;i++){
if(d<sqrt(b[i])){
break;
}
if(d%b[i]==0){
e=false;
break;
}
}
if(e){
b[c]=d;
c++;
}
d++;
}
for(int i=0;i<c;i++){
cout << b[i]+"\n" << endl;
}
}

最佳答案

几个问题:

int b=new int[n];
//^^compile error

应该是

int* b=new int[n];  //also need initialize array b

同时:

if (d<sqrt(b[i]))

在尝试访问它之前,您应该初始化 b

此外:

cout << b[i]+"\n" << endl;

编辑: @Daniel Fischer,这将在 coutendl 之前添加 std:: 进行编译,但会导致未定义的行为。尝试:

cout << b[i] << endl;

如果你只想打印b[i]

另外,在你的 while 循环中,你需要在 b[c] = d 之后递增 c,否则,它将元素一次又一次地进入同一个索引。

关于C++ 程序寻找质数和计时本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16446185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com