Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于状态增量/减量误差 我对使用C++是新的。我读过书,也使用过互联网。在这里-练习16-)_C++_Function_For Loop - Fatal编程技术网

用于状态增量/减量误差 我对使用C++是新的。我读过书,也使用过互联网。在这里-练习16-)

用于状态增量/减量误差 我对使用C++是新的。我读过书,也使用过互联网。在这里-练习16-),c++,function,for-loop,C++,Function,For Loop,我不明白为什么我的“for”语句不起作用,因为它似乎符合标准。完整代码如下所示,我将指出不适用于我的位: #include <iostream> using namespace std; void primecheck(int z) { bool primes = true; // start at 1 because anything divisible by zero is an error for (int i=1; i<=z; i++)

我不明白为什么我的“for”语句不起作用,因为它似乎符合标准。完整代码如下所示,我将指出不适用于我的位:

#include <iostream>

using namespace std;

void primecheck(int z)
{
    bool primes = true;
    // start at 1 because anything divisible by zero is an error
    for (int i=1; i<=z; i++)
    {
        if (z%i == 0)
        {
            // ignore if divisible by 1 or itself do nothing
            if ( i == z || i == 1)
            {}

            // if it can be divided by anything else it is not a prime
            else
            {
                primes = false;
                //break;
            }
        }
    }
    (primes == true) ? (cout << z << " is a prime number" << endl) : (cout << z << endl);
}

int main()
{
    int x;

    cout << "Enter a number to see if it is a prime number" << endl;
    cin >> x;

    for (x; x>0; x--)
    {
        primecheck(x);
    }
}
#包括
使用名称空间std;
无效预检查(int z)
{
布尔素数=真;
//从1开始,因为任何可以被零整除的东西都是错误的
对于(int i=1;i您需要:

for (; x>=1; x--)
{
    primecheck(x);
}
您前面所说的,只要x为,就继续这个for循环 即:

  • x;
    毫无意义,因为它什么都不做

  • <代码>的中间部分为循环不是一个停止条件。循环只要它是真的就运行。当你输入一个高值,如<代码> 5代码>,<代码>如果你输入<代码> 5 < /代码>然后<代码> x,这不是问题,但是对于从<代码> PrimeChuest的输出,使用<代码>如果语句。on用于计算值。将其纯粹用于副作用是错误的。只需了解for循环中的中间表达式是一个条件检查表达式。如果为true,则继续执行body,否则结束循环。现在,如果输入5,则它将大于1,但您的条件要求它大于1。因此循环将结束。Alternatively,
    cout Thank sheep&Pete Becker,我只是想用尽可能多的东西来获得经验。我知道这可能是“误用”,但我仍在学习,所以我会记住:)我只是想帮你。请告诉我否决我的答案的原因,以帮助我获得更好的答案。我最初否决了你的答案,因为最初它只是“你需要这样做:
    代码片段
    ”这不是好的代码:
    x;
    什么都不做。是的,但我有一个解释。我加了它。我想在解释之前提供狙击手,这样OP就可以处理一些事情。我马上加了解释,但你的回答仍然是“你需要做
    坏代码”
    ”。我不喜欢那些建议使用错误代码的答案。错误代码是怎么回事?它是一个简单的for循环。x;并不是毫无意义的,因为它是一个保存值OP希望循环运行的变量。谢谢,我理解你现在所说的。虽然“for”循环保持为真,但它会继续运行,但一旦它为假/超出范围,它就会停止。
    for (; x>=1; x--)
    {
        primecheck(x);
    }
    
    for (x; x<=1; x--)
    {
        primecheck(x);
    }
    
    x;
    while (x<=1)
    {
        primecheck(x);
        x--;
    }