编译器的问题,请教!
小弟刚刚学习C语言,今天运行一个很简单的小程序,求100-200间的所有素数,我把老谭的书上的程序敲到了VC6上,运行时,很奇怪出来的居然是100-200之间所有的奇数。#include <math.h>
#include <stdio.h>
main()
{
int i,j,k,n=0;
for(i=101;i<=200;i=i+2)
{
k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)break;
if(j==k+1) /*书上是j>=k+1*/
{printf("%5d",i);
n++;}
if(n%10==0)printf("\n");
}
printf("\n");
return 0;
}
我把其中一行改了一下(见注释),就能出来正确结果了,重新改回j>=k+1时又能出现正确结果了,请问高手,这是什么原因,没有学过编译原理,难道编译器会抽风?