小启洋同学 发表于 2024-4-1 18:58:39

为什么输出不出来

#include <iostream>
using namespace std;
int main() {
        int i, j, k, m;
        cin >> m;
        for (i = 2; i <= m; i++) {
                for (j = 2; j < i; j++) {
                        if (i % j == 0) {
                                break;
                        }
                if (j == i) {
                        cout << i << " " << endl;
                }
                }
        }
        cout << endl;
        return 0;
}

FishC 发表于 2024-4-1 18:58:55

你的代码缺少头文件引用和输出语句,所以无法正常输出结果。此外,应该注意到循环条件的表达式有误。

以下是修正后的代码:
#include <iostream>
using namespace std;

int main() {
    int i, j, k, m;
    cin >> m;
    for (i = 2; i <= m; i++) {
      k = 1;
      for (j = 2; j < i; j++) {
            if (i % j == 0) {
                k = 0;
                break;
            }
      }
      if (k) cout << i << " ";
    }
    return 0;
}

在这个程序中,我们使用两层循环来判断从2到输入的数之间的质数。在外层循环中,我们依次遍历2到输入的数,然后在内层循环中,检查当前数是否可以被2到`i-1`之间的数整除。如果可以整除,说明不是质数,将标志位`k`设为0,然后跳出内层循环。最后,检查标志位`k`的值,如果仍然是1,说明当前数是质数,将其输出。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 为什么输出不出来