gpt4 book ai didi

c - 项目 7 欧拉 C

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:07 30 4
gpt4 key购买 nike

我卡在了Question 7欧拉计划。我有这段代码。

#include <stdio.h>

int main (void)
{
int contador = 0, i, n, variavel = 0;
for (i = 0; contador == 1000; i++)
{
for(n = 0; n == i; n++)
{
if (i % n == 0)
{
variavel = i;
contador++;
}
}
}
printf("%d\n", variavel);
}

它总是打印 0。这是为什么?


PS:我写的是1000,但答案一定是第10001个质数。

最佳答案

for 循环由 3 部分组成

for( init ; cond ; step )

当执行到循环时,

  1. init 被执行。
  2. cond 被评估。

    • 如果为假,则跳出循环
    • 如果为真,进行下一步
  3. 执行循环体。
  4. 执行步骤(在很多情况下,这是递增/递减)
  5. 转到第 2 步

所以,在你的代码中,当执行到

for (i = 0; contador == 1000; i++)

i 设置为 0。然后检查条件 contador == 1000。它是错误的,因为 contador 被初始化为 0。因此,循环中断并且执行到达打印 variavel 值的 printf 0 然后

return 0;

执行。这将结束您的程序的执行。

您的内部 for 循环有一些类似的问题。如果外部 for 循环的条件得到纠正,则内部 for 循环将执行。 n 设置为零,然后检查条件 n==i。仅当 i=0 时为真,即仅在外部 for 循环的第一次迭代中为真。

你需要纠正这些错误。

关于c - 项目 7 欧拉 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29457836/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com