代码 不在 VS 代码中工作,但在 OnlineGDB 中工作
Code Not working in VS Code but works in OnlineGDB
我正在 VS Code 1.57.1 中使用 C++ 语言练习 primeSieve。
但附加代码在 VS Code 中不显示输出,而在在线 C++ 编译器中显示输出,例如
https://www.onlinegdb.com/online_c++_compiler
谁能帮我解决这个问题。
#include<iostream>
using namespace std;
void primeSieve(){//Genearate array containing prime number
int number;
cin>>number;
int p[1000] = {0}; //1=Prime;0=Non-Prime
//Mark All Odd number prime
for(int i=3;i<=1000;i+=2){
p[i]=1;
}
//Sieve
for(int i=3;i<=1000;i+=2){//jumping over odd numbers
//if current number is not marked(it is prime)
if(p[i]==1){
//Mark Multiples as 0
for(int j=2*i;j<=1000;j=j+i){
p[j]=0;
}
}
}
//Special Case
p[2]=1;
p[1]=p[0]=0;
for(int x=0;x<=number;x++){
if(p[x]!=0){
cout<<x<<" ";
}
}
}
int main(){
primeSieve();
return 0;
}
p[]
的大小为 1000
。您的循环上升到 1000
。尝试删除循环中的 =
并只保留 i < 1000
.
我正在 VS Code 1.57.1 中使用 C++ 语言练习 primeSieve。
但附加代码在 VS Code 中不显示输出,而在在线 C++ 编译器中显示输出,例如 https://www.onlinegdb.com/online_c++_compiler
谁能帮我解决这个问题。
#include<iostream>
using namespace std;
void primeSieve(){//Genearate array containing prime number
int number;
cin>>number;
int p[1000] = {0}; //1=Prime;0=Non-Prime
//Mark All Odd number prime
for(int i=3;i<=1000;i+=2){
p[i]=1;
}
//Sieve
for(int i=3;i<=1000;i+=2){//jumping over odd numbers
//if current number is not marked(it is prime)
if(p[i]==1){
//Mark Multiples as 0
for(int j=2*i;j<=1000;j=j+i){
p[j]=0;
}
}
}
//Special Case
p[2]=1;
p[1]=p[0]=0;
for(int x=0;x<=number;x++){
if(p[x]!=0){
cout<<x<<" ";
}
}
}
int main(){
primeSieve();
return 0;
}
p[]
的大小为 1000
。您的循环上升到 1000
。尝试删除循环中的 =
并只保留 i < 1000
.