当前位置: 代码迷 >> C语言 >> 求助..没弄明白
  详细解决方案

求助..没弄明白

热度:278   发布时间:2006-08-24 13:03:40.0

同意上楼


----------------解决方案--------------------------------------------------------
以下是引用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编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案