gpt4 book ai didi

c - 为什么当 p == 2 时执行这个内部 for 循环

转载 作者:行者123 更新时间:2023-11-30 21:17:59 25 4
gpt4 key购买 nike

我很难理解下面的代码。这是 Kochan 的 Programming in C 中的程序 6.10。它生成一个素数表。

#include <stdio.h>
#include <stdbool.h>

int main(void)
{
int p, d;
bool isPrime;`

// loops through 2 to 50
for ( p = 2; p <= 50; p++ )
{
isPrime = true;

for ( d = 2; d < p; d++)
if ( p % d == 0 )
isPrime = false;

// prints prime number
if ( isPrime != false )
printf(" %i ", p);
}

printf("\n");
return 0;
}

前面的代码输出:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

你能解释一下为什么内部for循环

for ( d = 2; d < p; d++)

仍然执行吗?我的理解是d = 2且p = 2;因此,d < p 不再为真。

最佳答案

确实是d < p在外循环的第一次迭代中不成立,但在下一次迭代中 p值为 3。

内在forp时循环不执行是 2。当 p 时,它会发生。 > 2.

关于c - 为什么当 p == 2 时执行这个内部 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32422879/

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