Code wird nicht ausgeführt(ohne Fehlermeldung)


  • Mod

    if (ci1 == ci2 == ci3) vergleicht nicht ci1, ci2 und ci3 auf gemeinsame Gleichheit, sondern vergleicht ci1 und ci2 auf Gleichheit und das Ergebnis davon (also true oder false) mit ci3. Stattdessen musst du hier mit Einzelvergleichen und logischen Verknüpfungen arbeiten.

    Ein guter Compiler würde dich davor warnen. Mag sein, dass du einen guten Compiler hast, du aber dessen Warnungen abwürgst. Mach dich mal kundig, wie du bei dir Warnungen aktivierst.

    Noch ein Wort: Dein Programm ist ein perfektes Beispiel für Spaghetticode. Benutz als Anfänger niemals goto und niemals (nicht konstante) globale Variablen. Wenn sich gleicher oder ähnlicher Code mehr als zweimal wiederholt, machst du ebenfalls was falsch. Deine Variablennamen sollten unbedingt ausdrücken, was die Bedeutung dieser Variablen ist. ci1? Wenn ich das meiner Oma nenne, dann hat die keine Ahnung, was damit gemeint ist. Sollte sie aber. Versuch unbedingt, alle diese Punkte zu verbessern! Das ist wichtig!



  • Hallo,

    obwohl man noch viel anderes zu deinem Programm sagen könnte, liegt das Grundproblem an den "Dreier-Vergleichen":

    if(ci1 == ci2 == ci3 || ...)
    

    So kann man nicht 3 Zahlen gleichzeitig auf Gleichheit prüfen, du musst schon ausführlich schreiben:

    if(ci1 == ci2 && ci2 == ci3 || ...)
    

    MfG,

    Probe-Nutzer



  • SeppJ schrieb:

    [c] "Deine Variablennamen sollten unbedingt ausdrücken, was die Bedeutung dieser Variablen ist. ci1?"

    c steht für case, und i für integer.

    aber du hast recht ich sollte sie deutlicher machen



  • [quote="Probe-Nutzer"]

    if(ci1 == ci2 && ci2 == ci3 || ...)
    

    danke für den richtigen code


  • Mod

    Nuggatschnitte schrieb:

    SeppJ schrieb:

    [c] "Deine Variablennamen sollten unbedingt ausdrücken, was die Bedeutung dieser Variablen ist. ci1?"

    c steht für case, und i für integer.

    Ich rate dir auch, Variablen nicht nach ihrem Typ zu benennen. Dieser ist entweder unwichtig (das ist der Normalfall) oder klar.

    Siehe auch:
    http://www.c-plusplus.net/forum/p1773551#1773551



  • @Nuggatschnitte
    Wo lernst Du denn so programmieren?
    Aus einem Buch? Dann wirf es bitte weg.
    Von einem Lehrer? Dann töte ihn bitte.

    😮



  • Von einem Lehrer? Dann töte ihn bitte.

    Haha, made my day~

    Nein ernsthaft, das was du da programmierst könnte man wohl in Assembler noch übersichtlicher schreiben.



  • rwerwerqsy schrieb:

    Wo lernst Du denn so programmieren?
    Aus einem Buch? Dann wirf es bitte weg.
    Von einem Lehrer? Dann töte ihn bitte.

    😮

    ich lerene es über youtube und internetforen. normalerweiße sieht es bei mir auch anders aus aber c-plusplus.net nimmt keine tabs mit auf .
    bei mir siehts dann aus wie beim ihm:
    http://www.youtube.com/watch?v=RxsmF4pbjwM&feature=plcp

    Wenn du willst dann gebe mir einfach tipps wie es besser aussehen könnte.
    das wäre nett. 🙂



  • Hol dir ein gutes Buch, es gibt nen guten Thread im FAQ dazu (gebe Link falls gewünscht)



  • Nuggatschnitte schrieb:

    ich lerene es über youtube und internetforen. normalerweiße sieht es bei mir auch anders aus aber c-plusplus.net nimmt keine tabs mit auf .
    bei mir siehts dann aus wie beim ihm:
    http://www.youtube.com/watch?v=RxsmF4pbjwM&feature=plcp

    Das Stichwort lautet in diesem Fall C++-Tags. Das Forum unterstützt sehr wohl Tabs, du musst ihm nur sagen, dass das dein Code ist.

    std::cout << "Der C/C++-Button bewirkt Wunder.";
    


  • Nuggatschnitte schrieb:

    ich lerene es über youtube und internetforen. normalerweiße sieht es bei mir auch anders aus aber c-plusplus.net nimmt keine tabs mit auf .
    bei mir siehts dann aus wie beim ihm:
    http://www.youtube.com/watch?v=RxsmF4pbjwM&feature=plcp

    Ich möchte dich vor diesem Video-Tutorial warnen, es ist schrott. Mal so als Hinweis, wenn du dir ein Video-Tutorial anschaust. Ob jemand etwas Ahnung von C++ hast, erkennst du ziemlich oft im Kapitel Eingabe mit Dateien . Wie erwartet hat auch dieser Typ so ein Kapitel, er nennt es Aus Dateien lesen. Und wie erwartet, benutzt er ios::eof . Damit ist schon klar, dass er C++ nie gelernt. Höchst wahrscheinlich lernt er nach dem Motto: "Kein Compilerfehler, alles Bestens."

    Des Weiteren gibt es auch folgendes zu bemängeln:
    1. Er benutzt keine Initialisierung.
    2. Er benutzt fstream::open und fstream::close .
    3. Keine Ahnung wieso Leute so oft getchar und Co. verwenden. Man kann auch Breakpoints setzen.
    4. Er benutzt rohe Arrays.
    5. Was endl so macht, weiß er offensichtlich auch nicht.


Anmelden zum Antworten