在循环中加入了块,来查看每次循环之后的变化。因为应用了变量作为数组的下标,所以也是c++环境运行。
#include <stdio.h>//
int isprime(int x,int primes[],int counts);
int main()
{
int number = 9;
int prime[number] = {2};//前10个素数
int i = 3;
int count = 1;
//表头
{
printf("\t\t\t");
for (i=0;i<number;i++){
printf("%d\t",i);
}
printf("\n");
}
//判断素数
i = 3;
while(count<number){
if (isprime(i,prime,count)){
prime[count++] = i;//是素数count+1
}
//调试
{
printf("i = %d \t count = %d \t",i,count);
for (int i=0;i<number;i++){
printf("%d\t",prime[i]);
}
printf("\n");
}
i++;
}
//输出数组
for (i=0;i<number;i++){
printf("%d\t",prime[i]);
}
printf("\n");
return 0;
}
//构建函数体
int isprime(int x,int primes[],int counts)
{
int ret = 1;
int i;
for (i=0;i<counts;i++){
if (x % primes[i] == 0){
ret = 0;
break;
}
}
return ret;
}