我在一个主要的程序中输入了1,它在C++中没有显示任何输出[关闭]

bxfogqkk  于 2023-04-08  发布在  其他
关注(0)|答案(2)|浏览(103)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
18小时前关闭
Improve this question

if(input == 2){
    std::cout << input << " is a prime number.\n";
}
else if(input % 2 != 0){
    for(int i = 3; i <= input; i+=2){
        if(input % i == 0){
            if(i == input){
                std::cout << input << " is a prime number\n";
            }
            else{
                std::cout << input << " is not a prime number.\n";
                break;
            }
        }
    }
}
else{
    std::cout << input << " is not a prime number.\n";
}

我试着在这个程序中输入1,但由于某种原因,它没有显示任何输出。根据程序,它应该输出“1不是素数”。但它不是。知道为什么吗?这是C++;
这是终端输出。

PS C:\Users\Administrator\cpp class> cd "c:\Users\Administrator\cpp class\" ; if ($?) { g++ prime.cpp -o prime } ; if ($?) { .\prime }
___________PRIME_OR_NOT___________
Enter the number : 1
PS C:\Users\Administrator\cpp class>

我试着在代码中手动设置输入变量,但也不起作用。我希望程序在终端中输出“1不是素数”。

ilmyapht

ilmyapht1#

如果你的输入是奇数,1就是奇数,那么所有的输出都会在循环中发生。第一个循环从i = 3开始,只要i小于或等于输入,就会循环。但是如果输入是1,这个循环就永远不会执行。
以下内容将纠正这一问题。

if (input <= 2) {
    std::cout << input << " is a prime number.\n";
}
else if (input % 2 != 0) {
    for (int i = 3; i <= input; i += 2) {
        if (input % i == 0) {
            if (i == input) {
                std::cout << input << " is a prime number\n";
            }
            else {
                std::cout << input << " is not a prime number.\n";
                break;
            }
        }
    }
}
else {
    std::cout << input << " is not a prime number.\n";
}
0aydgbwb

0aydgbwb2#

if(input == 2){
    std::cout << input << " is a prime number\n";
}
else if(input < 2){
    std::cout << input << " is not a prime number\n";
}
else if(input % 2 != 0){
    for(int i = 3; i <= input; i+=2){
        if(input % i == 0){
            if(i == input){
                std::cout << input << " is a prime number\n";
            }
            else{
                std::cout << input << " is not a prime number.\n";
                break;
            }
        }
    }
}
else{
    std::cout << input << " is not a prime number.\n";
}

它现在工作了。我把第一个if代码块改成了这个if代码块。
谢谢克里斯。

相关问题