2017-05-08 7 views
-4

これは愚かな質問かもしれませんが、なぜこのFORループが無限に実行されているのか理解できません。誰もが、これは無限ループに起こっている理由を私に伝えることができ、サイズの値が3である私の場合はEndless For Loop

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]; 
      } 
     } 
    } 
} 

:コードは以下の通りでありますか?

+4

「k = 0」のためです。 – LogicStuff

+0

コンパイラの冗長な警告をオンにすると、どこに問題があるのか​​がわかるはずです。 – Barmar

+0

おかげで...ルーキーミス – Trijit

答えて

2

if(k=0){...は、値0をkに割り当てるので、外側ループの2番目の反復では、外側ループの最初の反復に「ジャンプバック」します。

代わりにif(k==0){...を使用してください。