2017-05-08 98 views
-4

这可能是一个愚蠢的问题,但我真的不明白为什么这个FOR循环无限运行。代码如下:无尽的循环

for(int k=0;k<size-1;k++){ 
    for(int i=k+1;i<size;i++){ 
     for(int j=k+1;j<size;j++){ 
      if(k=0){ 
       a[i][j]=((a[i][j]*a[k][k]) - (a[i][k]*a[k][j])); 
      }else{ 
       a[i][j]=((a[i][j]*a[k][k]) - (a[i][k]*a[k][j]))/a[k-1][k-1]; 
      } 
     } 
    } 
} 

在我的情况下,值的大小是3,有谁能告诉我为什么这是一个无限循环?

+4

由于'k = 0'。 – LogicStuff

+0

打开编译器中的详细警告,我敢打赌它会告诉你问题出在哪里。 – Barmar

+0

谢谢队友......菜鸟的错误 – Trijit

回答

2

if(k=0){...将值0分配给k,所以在外循环的第二次迭代中,您“跳回”到外循环的第一次迭代。

改为使用if(k==0){...