代码之家  ›  专栏  ›  技术社区  ›  babygoalie29

将伪代码转换为C时的无限循环++

  •  -1
  • babygoalie29  · 技术社区  · 9 年前

    我在将伪代码转换为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;
    }
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Alper    9 年前
        if (i % p == 0) {
            hasfactor = true;
        p++;
        }
    

    应该是

        if (i % p == 0) {
            hasfactor = true;
        }
        p++;