求一百以内的素数,请大家看看我错哪了,南郭者勿扰,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:38:20
#include<stdio.h>
void main()
{
int i,j,a[100];
for(i=0;i<100;i++)
a[i]=i+1;
for(i=2;i<100;i++)
for(j=1;j<i;j++)
if(a[i]%a[j]==0)
a[i]=0;
a[0]=0;
for(i=0;i<100;i++)
if(a[i]!=0)
printf("%d ",a[i]);
}

你刚开始声明的int i与for里面的i重定义,把其中一个换成另一个字母,再就是for语句后面如果不加大括号的话,只能管到下面第一行的内容

不是南郭先生的问题,是您发错版了。

你的思想是是合数的将原来的数置为0,素数的不变是吧?

问题是,开始你检测到的合数都置为0了,后面的数再被他除的时候就变成被0除了,当然是有问题的。。

其实当检测到的是合数的时候什么都不用做,直接break就行了

还有可以让j<=(i/2)即可

还有就是格式上有问题,就像楼上说的

开始你检测到的合数都置为0了,后面的数再被他除的时候就变成被0除了,当然是有问题的。。

其实当检测到的是合数的时候什么都不用做,直接break就行了

还有可以让j<=(i/2)即可

还有就是格式上有问题,就像楼上说的