C语言写筛选法求100以内的素数

新手刚学C 现学到数组
这题做不来啊做不来
高手帮我找找错
#include <stdio.h>
void main()
{
int a[99],i=0,j=0,num=2,temp=99;
while (num<=100)
{
a[i]=num;
num++;
i++;
}
i=0;
num=2;
while (num<=50)
{
i=0;
j=0;
while (i<=temp)
{
if (a[i]%num!=0)
{
a[j]=a[i];
j++;
}
i++;
}
temp=j-1;
}
while (i<=j)
{
printf("%d\n",a[i]);
i++;
}
}

不用你那么复杂。

int i,j,k=0;
for(i=2;i<=100;i++)
for(j=2;j<=i;j++)
{
if(i/j==0)
break;
}
if(i==j)
{
a[k++]=i;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-19
不知道你要干什么,不过是死循环。在这里:
while (num<=50)
{
i=0;
j=0;
while (i<=temp)
{
if (a[i]%num!=0)
{
a[j]=a[i];
j++;
}
i++;
}
temp=j-1;
}
这里头num没有动过,进来之后就肯定死循环了。
相似回答