2017-07-29 2 views
-1

Wenn ich dieses Programm (ich benutze Codeblock und seine vollständig aktualisiert), zeigt es eine Box mit: '' '' .exe funktioniert nicht mehr Ein Problem hat dazu geführt, dass das Programm nicht mehr ordnungsgemäß funktioniert. Windows wird das Programm schließen und benachrichtigen, wenn eine Lösung verfügbar ist. '' ''.exe Datei funktioniert nicht mehr, wenn ich ein C++ - Programm (keine '/ 0')

#include <iostream> 

#include <math.h> 

#include <conio.h> 

using namespace std; 

int main() 
{ 

    int no, hlf, arr[no], arrno; 

    cout << "ENTER A NUMBER"; 

    cin >> no; 

    hlf = ceil(no/2); 


    for(int i = 1;i <= no;i++) 
    { 
     for(int j = 2;j <= hlf;j++) 
     { 
      int ij = i/j; 
      if(j != i && ij == 0) 
      { 
       goto cont; 
      } 
      else 
      { 
       continue; 
      } 
     } 
     arr[arrno] = i; 
     arrno++; 
     cont: ; 
    } 

    for(int k = 0;k <= arrno;k++) 
    { 
     cout << arr[k] << " "; 
    } 

    getch(); 
    return 0; 
} 
+8

, dass Ihr Programm bedeutet * abgestürzt *. Sie sollten einen * Debugger * verwenden, um herauszufinden, wo und warum Sie herausfinden, warum. Vielleicht sollten Sie auch lesen [Wie kleine Programme zu debuggen] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) von Eric Lippert. –

+1

Ich schlage vor, dass Sie alle Variablen und ihre Werte aufschreiben und dann den Code laufen lassen und die Werte aktualisieren, wenn sie sich ändern. Sie werden schnell Probleme mit Ihrem Code entdecken. –

+2

Als Hinweis: In Ermangelung von Schleifen läuft die Ausführung Ihrer Programme von oben nach unten. Ihr Programm wird nicht zurückgehen und Dinge wie die Neudefinition der Variablen rückwirkend vornehmen. Denken Sie darüber nach, wenn Sie vor der Initialisierung "Nein" verwenden. –

Antwort

0

Es gibt einige Fehler in Ihrem Code

  1. keine Notwendigkeit von #include <conio.h> und getch();

  2. Array arr[no] Deklaration ist falsch. Es sollte int arr[50]; sein

Hier ist der korrigierte Code, der gut läuft.

#include <iostream> 
#include <math.h> 

using namespace std; 

int main() 
{ 

    int no, hlf, arrno; 
    int arr[50]; 


    cout << "ENTER A NUMBER"; 

    cin >> no; 

    hlf = ceil(no/2); 



    for(int i = 1;i <= no;i++) 
    { 
     for(int j = 2;j <= hlf;j++) 
     { 
      int ij = i/j; 
      if(j != i && ij == 0) 
      { 
       goto cont; 
      } 
      else 
      { 
       continue; 
      } 
     } 
     arr[arrno] = i; 
     arrno++; 
     cont: ; 
    } 

    for(int k = 0;k <= arrno;k++) 
    { 
     cout << arr[k] << " "; 
    } 


    return 0; 
} 

Here is the Screenshot, program runs just fine but i have not check your logic

+0

Hier ist der Screenshot, Programm läuft gut, aber ich habe nicht Ihre Logik überprüft :) –

+0

Vielen Dank Jungs eneryone – Sri

0

Danke Jungs, ich erhielt die Antwort. Es war mein Fehler, ich habe nicht geschrieben, dass ich Primzahlen drucken muss. es ist meine erste Frage in einem Webforum. habe nie einen benutzt. ps -> Dank wieder

umfassen

umfassen

using namespace std;

int main() {

int numb = 12, half; 

int arra[50], arrno = 0; 

half = ceil(numb/2); 

for(int r = 2;r <= numb;r++) 
{ 
    for(int t = 2;t <= half;t++) 
    { 
     if(r%t != 0 || t == r) continue; 
     else goto rpp; 
    } 
    arra[arrno] = r; 
    arrno++; 
    continue; 
    rpp: 
     continue; 
} 

for (int v = 0;v < arrno;v++) 
{ 
    cout << arra[v] << " "; 
} 
return 0; 

}

Verwandte Themen