2016-04-27 13 views
0

最近C++を学び始めたので、Project Eulerの問題で私の才能をテストすると思った。私は最初の2つを解決しましたが、私は3番目についています。エラーなしで正しくコンパイルされていますが、実行されるとすぐにクラッシュしています。問題を切り分けるためにネストされたforループを削除しようとしましたが、それでもクラッシュしました。 if((i%j)==0)C++プログラムが何らかの不明な理由でクラッシュする

#include<iostream> 
#include<math.h> 
int main() 
{ 
    float quot; 
    int num = 0; 
    int array[100]; 
    float next; 

    for(int i = 0; i < 100; i++) 
    { 
     for (int j = 0; j < 100; j++) 
     { 
      if((i % j) == 0) 
      { 
      quot=j/i; 
      num=num+1; 
      } 

      if (num=2) 
      { 
      array[i]=i; 
      } 
     } 
    } 

    for (int i = 0; i < 100; i++) 
    { 
    if((13195 % i) == 0) 
    { 
     std::cout << i; 
    } 
    } 
} 
+1

このコードの意味はわかりませんが、あなたの 'if(num = 2) 'でnumに代入しています –

+2

あなたはどこかで0で割っているようです。 – JETM

+1

デバッガをブレークアウトする時間。 –

答えて

2

ijがゼロであれば、あなたの次の行は、iとjを分割しています。これはゼロ除算です。

+0

私は分かりません。 %演算子は残りを見つけることを意図していませんか?理論的には、i = 1、j = 1ならば、残りは0になります。しかし、除算は完全に論理的です。そうではありませんか? –

+0

その除算は論理的ですが、iとjがゼロであれば、ループを初めて通過するときは0で割っています。 –

+0

ありがとうございました。 ) –

関連する問題