c语言打印素数程序求大神

#include
int main()
{
int a[101],i,j;
for(i=0;i<101;i++)
a[i]=i;
for(i=0;i<101;i++)
{
for(j=0;j<i-1;j++)
{
if(a[i]%j!=0)break;
}
a[i]=0;
}
for(i=0;i<101;i++)
if(a[i]=0)
printf("%d is a sushu.",i);
return 0;

}

初学者啊啊啊啥都不会,打印1-100的素数,哪里错了
跪求大神指点感激不尽啊啊 啊~~~~~

c

8个回答

看错了
if(a[i]%j!=0)break;
这个应该是
if(a[i]%j==0) { a[i]=0; break; }
把后面的a[i]=0;删除

zowa13
zowa13 if(a[i]=0)也错了
5 年多之前 回复

for (int j = 2 ; j < i ; j++)

correct program:

#include
int main()
{
int a[101],i,j;
/*设置初始值*/
for(i=1;i<101;i++)
a[i]=i;

/*判断是否为素数*/
for(i=1;i<101;i++)
{
for(j=1;j<i-1;j++)
{
if(a[i]%j==0){a[i]=0;break;}
}
}

/*输出素数*/
for(i=1;i<101;i++)
if(a[i]!=0)
printf("%d是素数。",i);
return 0;
}

if(a[i]=0)
->
if(a[i]!=0)

#include
int main()
{
int a[101],i,j;
/*设置初始值*/
for(i=1;i<101;i++)
a[i]=i;

/*判断是否为素数*/
for(i=1;i<101;i++)
{
for(j=1;j<i-1;j++)
{
if(a[i]%j==0){a[i]=0;break;}
}
}

/*输出素数*/
for(i=1;i<101;i++)
if(a[i]!=0)
printf("%d是素数。",i);
return 0;
}

#include
int main()
{
int a[101],i,j;
for(i=0;i<101;i++)
a[i]=i;
for(i=0;i<101;i++)
{
for(j=0;j<i-1;j++)
{
if(a[i]%j!=0)break; //if(a[i]%j==0){a[i]=0;break;} !=应改为==
}
a[i]=0; //这相当于每个元素都赋值为0.应把它和break一起放到if后面。
}
for(i=0;i<101;i++)
if(a[i]=0) //"="是赋值,应改为== if(a[i]==0) 因为前面把!=改为了==所以应变为if(a[i]!=0)
printf("%d is a sushu.",i);
return 0;

}


我的程序:
#include
void main()
{
int i,j;
for(i=2;i<101;i++)
{int flog=0;
for(j=2;j<i-1;j++)
if(i%j==0)
flog=1;
if(flog==0)
printf("%d\n",i);
}
}

两个循环写错了,
for(i = 2 ; i <101 ; i++)
for(j = 2; j< i ; j++)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问