c语言编程错哪了,求大神帮我看看,为何输出是0

2025-01-01 13:46:28
推荐回答(1个)
回答1:

#include
#include
void main()
{
    int i,j,k=0,t=0;
    for (i=3;i<=100;i++)
        for(j=2;j<=i-1;j++)
            if (i%j!=0)
                k=k+1;
    if (k==i-2)
        t=t+1;
    printf("%d\n",t);
}

你的代码把格式调整一下之后是这样

最后的if语句判断k是否等于i-2,i最后的值是101,所以是判断k是否等于99

k不等于99,那么t的值就不会变,所以就输出0,而且只有一次输出

你的输出应该是放在外层循环里面的,因为i才是那个被判断是否为素数的变量

你的算法应该也有问题,k和t自增是要干什么?