Array ausgeben, dass abwechselnd Nullen und natürliche Zahlen ausgibt



  • Hallo,

    ich versuche gerade, ein Array der Dimension 20 zu erzeugen, wessen Arrayfelder an jeder zweiten Stelle Null und sonst aufsteigend mit den natürlichen Zahlen belegt sind, also 0,1,0,2,0,3,0,4, usw.

    Leider komme ich an dieser Aufgabe nicht so ganz weiter.

    Mein Ansatz wäre bisher folgender:

    #include <stdafx.h>
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main()
    {
    int a[20],i,k;// Deklaration einer Variable und eines Arrays vom typ integer
        k=1;// initialisierung von k
        for (i=0; i<20; i++)    {
            a[i]=0;// Initialisierung der Elemente des Arrays a mit 0
    
            if (i%2==1)// nur ungerade Arrays sollen Zahlenwerte annehmen
    {
        a[i]=k;
        k=k+1;
    cout <<a[i]<<endl;// Ausgabe der Zahlen
        }
        else{ cout <<"0"<<endl;// sonst 0 anzeigen
    
        }
        return 0;
        }
    

    Ist der Ansatz überhaupt grundsätzlich richtig? Also dass man mit dem Modulo-Operator arbeitet, um nur ungerade Array-Elemente auszugeben.

    Denn man fängt ja mit 0 an, also 0,1,0,2,0,3
    und wenn die Null am Anfang das nullte Array Element wäre, dann wären die natürlichen Zahlen immer an den ungeraden Array-Feldern, und die restlichen Felder wollte ich über die else-Anweisung auf Null setzen.

    Bei mir kommt dann noch die Fehlermeldung:

    cpp(23) : fatal error C1075: end of file found before the left brace '{' cpp(6)' was matched

    Leider verstehe ich nicht so ganz, wie ich die Fehlermeldungen beheben kann.
    Kann mir da jemand behilflich sein? Das wäre nett.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++/CLI mit .NET in das Forum C++ (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Das sieht mir doch sehr nach reinem C++ aus.

    An sich ist der Ansatz mit dem Modulo ok. Eine wesentliche Verbesserung, auch für später, wäre, Logik und Ausgabe zu trennen. In deinem jetzigen Programm könntest du das Array auch komplett weglassen, sein Inhalt hat keinen Einfluss auf die Ausgabe des Programms. Mach zuerst dein Array so wie es sein soll, dann gib es aus.

    Bezüglich der Fehlermeldung: Die ist doch eindeutig, oder? Dass du den Überblick über diene Klammern verlierst ist keine Überraschung, man muss nur einen flüchtigen Blick auf die Einrückung deines Programms werfen, um zu sehen, dass da kein Mensch mehr durchblicken kann, obwohl es nur 20 Zeilen sind. Wenn du derartige Schwierigkeiten mit sauberer Form hast, solltest du dir einen Editor suchen, der dich bei der Einrückung und Klammernsetzung unterstützt. Jeder bessere Editor kann dir Klammernpaare markieren, Fehler in der Klammerung erkennen, und den Code automatisch gemäß der Klammern einrücken.



  • Wenn du kein English kannst, kannst du Online-Übersetzer oder Wöerterbücher nehmen.

    Z.B. Leo.org http://dict.leo.org/englisch-deutsch/

    cpp(23) : fatal error C1075: end of file found before the left brace '{' cpp(6)' was matched

    Vor dem ersten Doppelpunkt steht der Dateiname und die Zeile, in der der Fehler auftritt.
    Dahinter die Fehlernummer (danach kann man auch suchen, wenn man den Compiler mit angibt) und dann noch mal eine Beschreibung vom Fehler.

    end of file found before the left brace '{' cpp(6)' was matched kannst du Wort für Wort übersetzen und das ergibt dann auch einen Sinn.

    Kurz: du bist mit der Anzahl/Positionen der Klammern durcheinander geraten.


Anmelden zum Antworten