是不是我的编译器有bug
#include <iostream.h>#include <stdlib.h>
void main()
{
int i, j, m, a2[9998]; for(i=2; i<10000; i++)
a2[i-1]=i;
for(j=3; j<10000; j++)
{
while(a2[j-2]==0)
j++;
for(i=j; i<10000; i++)
if(i%a2[j-2]==0)
a2[i-1]=0;
}
int n=0;
for(i=1; i<9999; i++)
if(a2[i]!=0)
n++;
int *a1=(int *)malloc(n);
j=1;
for(i=1; i<=n; i++)
{
while (a2[j]==0)
j++;
a1[i]=a2[j];
j++;
cout<<a1[i]<<' ';
}
}
以上是用筛选法选出2~10000的素数,程序第五行的m是多余的,我的电脑也显示一个warning(我用的是VC6.0),但是运行结果完全正确,可是如果我把它去掉,程序虽没有error和warning,可是运行不出结果~~~高手帮我看看问题所在吧~~麻烦了