gpt4 book ai didi

可变长度的 C++ 数组不起作用

转载 作者:行者123 更新时间:2023-11-28 00:10:28 24 4
gpt4 key购买 nike

/*Print the first N prime numbers based on user input*/

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

bool isPrime(int N) {
if (N <= 0) {return false;}
double L = sqrt(N);
for (int i=2; i<=L; i++) {
if (N%i == 0) {return false;}
}
return true;
}

int main()
{
int Q = 0; //# of prime numbers to be found
int C = 0; //That's the counter
int I = 2; //Number to be check
cout<<"Number of prime numbers needed: ";
cin>>Q;

int primes [Q];

while (true) {
if (C == Q) {break;}
if (isPrime(I)) {
primes[C] = I;
C++;
I++;
}
}

for (int i=0; i<Q; i++) {
cout<<primes[i]<<endl;
}

return 0;
}

这不起作用,并且总是在屏幕上打印 2 和 1 而不是质数列表,isPrime 函数运行良好,可能我的数组有问题

最佳答案

I 只在素数条件为真时自增,在if子句外自增:

while (true) {
if (C == Q) {break;}
if (isPrime(I)) {
primes[C] = I;
C++;
}
I++; //here
}

C++ array with variable length wouldn't work

它一直有效,直到 c 变量不超过堆栈帧的整数范围或数组大小。

关于可变长度的 C++ 数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400942/

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