问题描述
- 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的素数,哪里错了
跪求大神指点感激不尽啊啊 啊~~~~~
解决方案
看错了
if(a[i]%j!=0)break;
这个应该是
if(a[i]%j==0) { a[i]=0; break; }
把后面的a[i]=0;删除
解决方案二:
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("%dn",i);
}
}
解决方案七:
http://blog.csdn.net/xianfajushi/article/details/25125133
解决方案八:
两个循环写错了,
for(i = 2 ; i <101 ; i++)
for(j = 2; j< i ; j++)