gpt4 book ai didi

c - 当我在嵌套的 for 循环中包含括号时,它无法正常运行,但当我将它们取出时,它可以正常运行;为什么是这样?

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

当我编写这个程序来打印素数时,它可以在嵌套 for 循环中没有括号的情况下正常工作:

#include<stdio.h>

int main (void)
{
int p, d;
_Bool isPrime;

for (p = 2; p <= 50; ++p)
{
isPrime = 1;

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

if (isPrime != 0)
printf("%i ", p);
}

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

但是当我执行以下操作时:

for (p = 2; p <= 50; ++p)
{
isPrime = 1;

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

if (isPrime != 0)
printf("%i ", p);
}
}

printf("\n");
return 0;

它多次打印素数(与前一个素数的值相同的次数)。它还打印出 9。

有人知道为什么会发生这种情况吗?

最佳答案

因为迭代中括号会包含打印语句,所以在检查时会打印数字。 9 % 2 == 0 为 false,9 % 3 == 0 为 true,因此 9 被打印一次。

关于c - 当我在嵌套的 for 循环中包含括号时,它无法正常运行,但当我将它们取出时,它可以正常运行;为什么是这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810412/

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