2016-04-27 14 views
0

Ich habe vor kurzem angefangen, C++ zu lernen, und dachte, ich würde meinen Eifer mit Project Euler-Problemen testen. Ich habe die ersten beiden gelöst, aber ich bin auf der dritten stecken. Es kompiliert korrekt ohne Fehler, aber es stürzt ab, sobald es ausgeführt wird. Ich habe versucht, die verschachtelten for-Schleifen zu entfernen, um das Problem zu isolieren, und es stürzte immer noch ab.C++ - Programm stürzt aus einem unbekannten Grund ab

#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

Nicht ganz sicher, was der Punkt eines dieser Code ist ... Aber Sie zuweisen zu num in Ihrem 'if (num = 2)' –

+2

Sieht aus, als ob Sie durch 0 irgendwo dividieren. – JETM

+1

Zeit, den Debugger auszubrechen. –

Antwort

2

In if((i%j)==0) wenn i und j sind Null, Ihre nächste Zeile i und j geteilt wird. Dies ist eine Division durch Null.

+0

Ich bin mir nicht sicher, ob ich das verstehe. Ist der% Operator nicht dazu gedacht, den Rest zu finden? Also theoretisch, wenn i = 1 und j = 1, dann wäre ihr Rest 0. Aber die Teilung ist vollkommen logisch, nicht wahr? –

+0

Diese Division ist logisch, aber wenn i und j Null sind, was sie das erste Mal durch die Schleife sind, teilen Sie durch Null. –

+0

Danke, das hat es behoben. Ich wusste, dass es etwas einfaches sein würde;) –

Verwandte Themen