c语言,每5个一行输出200以内素数,写的程序哪里出错了么?

如题所述

几个问题


你输出的时候

上面已经做过a[j++]=i;了 这里j已经自加了

那么就不能直接输出a[j] 而应该输出a[j-1]


输出不能每次循环都输出 必须要在判断里面


判断换行不能用i判断 而应该用j判断

所以这部分应该是

for(i = 2; i < 201; i ++)
{
    if(pp(i))
    {
        a[j++]=i;
        printf("%d ", i);
        if(j%5==0)printf("\n");
    }
}

从这个代码上看 a并没有起到什么作用 所以其实可以把a去掉 只做j++就可以了


另外 判断素数的时候 

应该是

for(i = 2; i <= x/2; i ++)

最后返回的时候其实不需要判断 

直接return 1;就可以 因为不符合的之前已经返回了

温馨提示:答案为网友推荐,仅供参考
相似回答