Announcement

Collapse
No announcement yet.

for-schleife wird einfach übersprungen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • for-schleife wird einfach übersprungen?

    Hallo, seit ein paar tagen lese ich ein Buch über C++. Naja, heute wollt ich mal etwas auf eigene Faust ausprobieren, aber ich habe folgendes Problem: Mein Programm soll eingegebene Zahlen in Arrays speichern. Sobald eine negative Zahl eingegeben wird, soll die Speicherung beendet werden und die Zahlen sollen alle sumiert werden. Doch aus irgendeinem Grund werden die for-Schleifen übersrprungen Woran kann das liegen? Hier der Code:
    Code:
    #include <cstdlib>
    #include <iostream>
    #include <string>
    
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int zahlen[127];
        for (int i;i <= 127;i++)
        {
            cout << "Geben sie die nächste Zahl ein! Geben sie eine negative Zahl ein damit das Ergebnis angezeigt wird!";
            int zahl;
            cin >> zahl;
            if (zahl < 0)
            {
                     break;
            }
            zahlen[i] = zahl;
         }    
         for (int i; i<= 127;i++)
         {
             if (zahlen[i] < 127)
             {
             break;
             }
             
             int rechnung = 0;
             rechnung = rechnung + zahlen[i];
         }
         
                              
        system("PAUSE");
        return 0;
    }
    Was habe ich falsch gemacht?

  • #2
    Wo wird etwas übersprungen??

    Woran siehst du das??
    Christian

    Comment


    • #3
      Da du nun nicht mehr im Forum bist:

      Das Programm hat folgende Fehler:

      int zahlen[127];
      for (int i;i <= 127;i++)
      wie weit darf die Schleife laufen? Reserviert sind die Speicherzellen von 0-126 = insgesamt 127. die Schleife läuft also von 0 - <127 also for (int i=0;i <127;i++)

      Das gilt dann für die zweite Schleife auch. Beiden Schleifen fehlt der Initialwert von i. for(int i=0;.....)

      In der 2. Schleife würdest du immer noch nichts sehen. Was auch? Eine Ausgabe fehlt. Des weiteren ergibt deine Addition immer einen falschen Wert, weil du bei jedem Durchlauf

      int rechnung = 0;

      machst. rechnung enthält also immer nur den letzten Wert des Arrays

      Wozu

      #include <cstdlib>

      ??
      Zuletzt editiert von Christian Marquardt; 13.03.2008, 21:16.
      Christian

      Comment


      • #4
        Naja über den Sinn des Programms brauchen wir uns ja nicht den Kopf zerbrechen. Is ja nur ein Test-Programm.
        Wenn du eine Variable vereinbarst und dieser keinen wert zu weißt steht da irgendwas drin (kannst du dir ja mal im DebugModus anschauen).
        Du willst aber das sie "null" ist. also wie schon gesagt:
        for(int i = 0; ... ; ...) { }

        Comment

        Working...
        X