mathemanu Geschrieben 6. August 2010 Teilen Geschrieben 6. August 2010 (bearbeitet) Moin Leute, ich sitze hier seit einer Stunde vor einem Programmabschnitt und der produziert mir den verwirrendsten Fehler, den ich in einem c++-Programm bis jetzt gesehen habe. Der betrachtete Code ist folgender: // int l=0; float max[10]={0}; int kmax[10]={0}; for(k;k<9970;k++) { if (mittelwert[k][0]>=max[0]) { max[0]=mittelwert[k][0]; kmax[0]=k; } } for(int i=kmax[0]-grenze;i>=0;i--) { // l++; if (mittelwert[i][0]>=max[1]) { max[1]=mittelwert[i][0]; kmax[1]=i; } } for(int i=kmax[0]+grenze;i<=9970;i++) { // if (mittelwert[i][0]>=max[2]) // { // max[2]=mittelwert[i][0]; // kmax[2]=i; // } } // std::cout << l; Folgender unbegreiflicher Fehler tritt auf: Wenn ich l auskommentiert lasse (ich brauche l an keiner anderen Stelle im Programm und wie ihr seht in dem Schnipsel hier auch nicht) , dann wird zwar ohne zu meckern von meinem boarland-compiler kompiliert, aber sobald ich die exe starte gibt mir windows aus, dass die exe ein Problem festgestellt hat und beendet werden muss. Jetzt kommt aber das lustigeste an der ganzen Sache. Wenn ich l wieder einkommentiere, dann werden meine Maxima gefunden und ausgegeben. Und zwar die richtigen Werte. Was zur Hölle könnte das denn sein? Ich verstehe das überhaupt nicht. Habe schon alles mögliche ausprobiert und teilweise kompiliert, aber ich komme nicht auf den Fehler. Es muss doch auch ohne gehen. Für Hilfe bin ich wie immer sehr dankbar. Grüße Manu PS: Der Wert grenze ist ein int-Wert von 200. Bearbeitet 6. August 2010 von mathemanu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hexagon Geschrieben 6. August 2010 Teilen Geschrieben 6. August 2010 Moin. Kurze Frage: Was ist k? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mathemanu Geschrieben 6. August 2010 Autor Teilen Geschrieben 6. August 2010 Oh, ja ich hab k noch nicht wieder in die Schleife geschreiben, aber da steht eigentlich: for(int k=0;k<9970;k++) Ich falle vom Glauben ab. Ich habe int k=0; einfach über der Schleife geschrieben und dann hat er immer diesen Fehler ausgespuckt. Aber jetzt ist er weg. Ich dachte, wenn man die Laufvariable außerhalb der Schliefe initialisiert, dann geht das auch... Vielen Dank für die Antwort. Es klappt jetzt auf jeden Fall. Gruß Manu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.