这是一个建立数组来判断素数的程序
if判断条件里面有个isprime函数具体怎么执行?函数里面的返回值又有什么用?当x=4时应该也会执行isprime后再执行prime[count++]=i才对啊,为什么不执行了?
图片和代码一致,建议看图
#include
int main(){
const int number=100;
int prime[100] = {2};
int count =1;
int i=3;
while(count
if (isprime(i,prime,count)){
prime[count++]=i;
}i++;
}
for(i=0;iprintf("%d",prime[i]);
if((i+1)%5)
printf("\t");
else printf("\n");
}
return 0;}
int isprime(int x,int knownprimes[],int numberOfKnownPrimes){
int ret=1;
int i;
for(i=0;i
if(x%knownprimes[i]==0){
ret=0;
break;
}
}
return ret;
}*
isprime这个函数应该写在main函数之前才能被调用
#include <stdio.h>
int isprime(int x, int knownprimes[], int numberOfKnownPrimes)
{
int ret = 1;
int i;
for (i = 0; i < numberOfKnownPrimes; i++)
{
if (x % knownprimes[i] == 0)
{
ret = 0;
break;
}
}
return ret;
}
int main()
{
const int number = 100;
int prime[100] = {2};
int count = 1;
int i = 3;
while (count < number)
{
if (isprime(i, prime, count))
{
prime[count++] = i;
}
i++;
}
for (i = 0; i < number; i++)
{
printf("%d", prime[i]);
if ((i + 1) % 5)
printf("\t");
else
printf("\n");
}
return 0;
}