将伪代码转换为 C++ 时的无限循环
Infinite loop while converting pseudocode to C++
我在将伪代码转换为 C++ 时遇到问题,因为我 运行 我的程序似乎陷入了无限循环。
函数的伪代码如下:
kN ← n*200
c ← 0
for i from 2 to kN
f ← false
j←2
while (j < p and not(f))
if (i%p = 0)
f ← true
p ← p + 1
done
if (not f)
print i
c ← c + 1
end if
end for
print c
return c
这是我的尝试:
int primes(int n){
int kN = (n*200);
int c = 0;
for (int i = 2; i < kN; i++){
bool f = false;
int j = 2;
while (p < i && f == false){
if (i % p == 0) {
f = true;
p++;
}
}
if (f == true) {
c << i;
c++;
}
}
cout << c;
return c;
}
if (i % p == 0) {
hasfactor = true;
p++;
}
应该是
if (i % p == 0) {
hasfactor = true;
}
p++;
我在将伪代码转换为 C++ 时遇到问题,因为我 运行 我的程序似乎陷入了无限循环。
函数的伪代码如下:
kN ← n*200
c ← 0
for i from 2 to kN
f ← false
j←2
while (j < p and not(f))
if (i%p = 0)
f ← true
p ← p + 1
done
if (not f)
print i
c ← c + 1
end if
end for
print c
return c
这是我的尝试:
int primes(int n){
int kN = (n*200);
int c = 0;
for (int i = 2; i < kN; i++){
bool f = false;
int j = 2;
while (p < i && f == false){
if (i % p == 0) {
f = true;
p++;
}
}
if (f == true) {
c << i;
c++;
}
}
cout << c;
return c;
}
if (i % p == 0) {
hasfactor = true;
p++;
}
应该是
if (i % p == 0) {
hasfactor = true;
}
p++;