变量值不会改变

时间:2016-10-21 05:31:13

标签: c

这是我计算素数的代码。 基本上我把所有以前的素数除以数字,我计算检查它是否是素数。我没有得到正确答案。我不断更改代码以找出错误。我发现只要进入循环,我的值就不会初始化为0。相反,我是1,2,3。我不明白为什么会这样。我正在使用visual studio c。 请解释为什么会发生这种情况???

#include<stdio.h>
#include<conio.h>
int main()
{
int primes[10000];
int i,j,k;
int primecheck;
 primes[0]=2;

k=1;
for(j=3;;j+=2)
{
  primecheck = 1;
  i=0;
    for(i=0;i<k;i++);
   {

       printf("%d\n%d\n%d\n",i,j,j%primes[i]);// this helped me figure 
                                              // out the problem
       if(j%primes[i] == 0)
       { 
           primecheck = 0;
           printf (" %d, %d\n",j,primes[i]);
       }
       printf("%d\n",k);

   }
   if (primecheck == 1)
   {
       primes[k]=j;
       printf("%d prime is %d\n",k+1,primes[k]);
       k++;
       if(k == 5)
       {
           break;

       }
   }
}
printf("%d",primes[k-1]);
getch();

}

1 个答案:

答案 0 :(得分:0)

不要使用虚拟循环。

for(i=0;i<k;i++);

最后删除分号并尝试。对于当前代码,它没有进入上面的部分下面for循环任何迭代,它被视为一个虚拟循环。所以试试

for(i=0;i<k;i++)
{

}