我是新手,但这个好纠结
#include<stdio.h>#include<stdlib.h>
int main ()
{int n,a,b,c,i=0;
for(n=2;n<=100;n++)
{
for(a=2;a<n;a++)
{c=n%a;
if(c==0) { i++;}
}
if(i==0)
{printf("%d\n\n",n);}
}
system("pause>>NUL");
return 0;
}
求教100以内的素数 是哪里有错 结果只有2和3
#include<stdio.h> #include<stdlib.h> int main (){ int n,a,c; for(n=2;n<=100;n++){ int i=0; for(a=2;a<n;a++) { c=n%a; if(c==0) { i++; } } if(i==0){ printf("%d\n\n",n); } } system("pause>>NUL"); return 0; }其实就是一个i的位置问题,你这里的i需要每次都初始化,那么在for程序块中就可以办到,而写在上面的话,进入main()函数只会初始化一次,那么当n=4时,i就变成了1,依次类推,i每加一次,i的值在进入for循环就已经不是0了,当然后面的素数就不会打印了。我运行了可以的,我把b删除了,因为没用到。