C 我的For循环不工作,但没有引发错误消息-可能是什么?

C 我的For循环不工作,但没有引发错误消息-可能是什么?,c,for-loop,C,For Loop,大家好 作为项目的一部分,我正在创建一个质数检查器-我正在使用For循环来迭代每个数字,另一个循环来迭代它下面的每个数字,以确定它是否是质数。但是,这两个循环都不起作用。我已经将它与我创建的其他工作循环以及与朋友的工作循环进行了对比,但这两个循环都没有帮助过任何抱歉的朋友。我们将感谢您给予的任何帮助,我将永远高度赞扬您: 如前所述,我已经对照其他作品和我的朋友进行了检查。我还尝试在循环中单独运行代码,代码确实可以工作 #include <stdio.h> //int FinalPr

大家好

作为项目的一部分,我正在创建一个质数检查器-我正在使用For循环来迭代每个数字,另一个循环来迭代它下面的每个数字,以确定它是否是质数。但是,这两个循环都不起作用。我已经将它与我创建的其他工作循环以及与朋友的工作循环进行了对比,但这两个循环都没有帮助过任何抱歉的朋友。我们将感谢您给予的任何帮助,我将永远高度赞扬您:

如前所述,我已经对照其他作品和我的朋友进行了检查。我还尝试在循环中单独运行代码,代码确实可以工作

#include <stdio.h>

//int FinalPrimeArray[sizeof(Primes)];
//int FinalNotPrimesArray[sizeof(NotPrimes)];

int main()
{
    //int Pos = 0;
    int Pos2 = 0;
    int i = 3;
    int k;
    int divider = 2;
    int productint;
    float productintasfloat;
    float productfloat;

    int Primes[100];
    //int NotPrimes[100];

    //Test Block (start)
    float i2 = i;
    float divider2 = divider;
    productfloat = i2 / divider2;
    printf("float type is: %f \n", productfloat);
    productint = i / divider;
    productintasfloat = productint;
    printf("integer type is: %d \n", productint);
    if(productintasfloat == productfloat)
    {
        printf("yes");
    }
    //Test Block (end)

    printf("Calculating all prime numbers in 3-100");
    for(i = 3; i == 100; i++)
    {
        printf("1");
        k = i - 1;
        for(divider = 2; divider == k; divider++)
        {
            printf("2");
            float i2 = i;
            float divider2 = divider;
            productfloat = i2 / divider2;
            printf("float type is: %f \n", productfloat);
            productint = i / divider;
            productintasfloat = productint;
            printf("integer type is: %d \n", productint);
            if(productintasfloat == productfloat)
            {
                Primes[Pos2] = i;
                Pos2++;
            }
        }
    }

    return 0;
}

我希望它在第一个循环中迭代97次,每个主迭代依次迭代“I-1”次。现在已经很清楚了。。。事实并非如此。当我没有收到错误消息时,它会打印文本块和3-100消息中的两行代码。然后什么也没有,没有错误消息或进一步的输出。然而,代码确实终止停止符号,变灰-通常是彩色的,并且在代码运行时可以单击

任何帮助都将不胜感激,如果没有人能帮助。。。嗯,我想我得另找一条路绕开它。虽然我希望任何修复都能保持接近我预期的方法,但我并不想成为一个选择者,任何修复都将非常感激:

->萌芽显影剂


如果我错过了任何有用的信息,而您想提供帮助,请不要害怕询问。

我认为您混淆了for循环的工作方式

只要条件为真,for循环就会运行,直到它变为假。您认为只要条件为false,for循环就会运行,直到它变为true

因此,i=3;i==100;i++应该用于i=3;i<100;i++


现在说,当它小于100时,继续指控我。你的previoius循环说的是增量i,而它是100。这从来都不是

我想你把for循环的工作原理搞混了

只要条件为真,for循环就会运行,直到它变为假。您认为只要条件为false,for循环就会运行,直到它变为true

因此,i=3;i==100;i++应该用于i=3;i<100;i++


现在说,当它小于100时,继续指控我。你的previoius循环说的是增量i,而它是100。对于i=3,它从来都不是;i==100-条件总是错误的我从未见过使用实数的素数生成器。比较它们充满了困难-最好使用几个整数解决方案中的一个。同意,浮点和双精度从定义上来说是有损的。我希望我能多次检查@UnholySheep的评论,fordivider=2也是如此;除法器==k;fori=3;i==100-条件总是错误的我从未见过使用实数的素数生成器。比较它们充满了困难-最好使用几个整数解决方案中的一个。同意,浮点和双精度从定义上来说是有损的。我希望我能多次检查@UnholySheep的评论,fordivider=2也是如此;除法器==k;谢谢你,是的,这很有意义,我现在感觉自己像个十足的小飞象谢谢你,是的,这很有意义,我现在感觉自己像个十足的小飞象