因为你在For循环开始的时候没有对sum进行清0,这样第一个数不是素数的话,sum就不是0了,之后就算是遇到素数sum没有进行加1的操作也同样不会是0。解决的办法是在第一个for循环和第二个for循环之间加一个sum=0;12345678910111213void?main(){????int?n,i,sum=0;????for(i=100;i<=150;i)????{????????????sum=0;????????for(n=2;n<(i/2);n)????????{if(i%n==0)????????sum=sum1;}????????if(sum==0)????????????printf("%d",i);????????}}