同意上楼
以下是引用C之Itachi在2006-8-23 23:56:07的发言:
for(b=2;b<a;b++)
{
for(i=2;i<a;i++)
if(b%i==0)break ;
else
b[j]=b;
j++;
}
为什么输出b[]是a以内的奇数而不是素数?
楼主的程序还有很多问题:
(1)第二个for(i=2;i<a;i++),应该是i<b
(2)不可以既定义int b,又定义b[10],这样标识符重名
(3)else的下边要加{},即{b[j]=b;j++;}
给个参考程序:
#include<stdio.h>
#include<math.h>
#define M 100
int main()
{
int i,j,k=0,n,prime[M],t;
printf("Input n:");
scanf("%d",&n);
for(i=2;i<n;i++)
{
t=sqrt(i);
for(j=2;j<=t;j++)
if(i%j==0)
break;
if(j>=t+1)
prime[k++]=i;
}
for(i=0;i<k;i++)
printf("%d\n",prime[i]);
return 0;
}
[此贴子已经被作者于2006-8-24 13:58:16编辑过]