为什么没有输出55996324125856369

为什么没有输出5866321478966524788523987741236998884128996358

img

错误的应该是i = a这句,每次循环i初始值都为a,我们输入100,那么每次循环它都会是100,那么第一个for循环那里它就会满足i%j == 0,x就会等于1,那么x=0那部分输出的内容就不会有了
修改的代码

#include<stdio.h>
int main()
{
    int a,n,i,j,x;
    int count = 0;
    scanf("%d %d",&a,&n);
    i = a;
    while(n > 0){
        for(j = 2;j < i;j++){
            x = 0;
            if(i % j == 0){
                x = 1;
                break;
            }
        }
        if(x == 0){
            printf("%d",i);
            count++;
            if(count % 8 == 0){
                printf("\n");
            }
        }
        if(count == n){
            break;
        }
        i++;
        //printf("%d\n",i);
    }
    
}
 
 

不满足if x==0的条件当然不会输出了。
因为你x的值最后是在第一个for循环中改变的,且最会将1赋值给x后用break退出循环,这导致x=1不满足x==0的条件无法进入第二个if语句所以不会有输出