Was macht das % ?????



  • Hi, ich wollte fragen was der % operator bei diesem beispiel genau macht ??

    char Zahl[LEN];
    int ergebnis = 0;
    
    for (int i = 0; i < LEN; i++) {
      ergebnis += Zahl[i] - '0';
    }
    


  • Er versteckt sich...



  • In genau diesem Beispiel genau garnichts.



  • Sorry, hab das falsche kopiert 😞

    Hier:

    int quersumme(int z) {
        int sum = 0;
        while (z > 0) {
            sum += z % 10;
            z /= 10;
        }
        return sum;
    }
    


  • Modulus-Operator => Gibt Dir den Rest einer Definition zurück. Also: a % b = r, wobei gilt, es existiert ein q, sodass a = b * q + r. r ist der Rest der Division von a durch b.



  • Gehört übrigens in Ansi C-Forum.

    Das %-Zeichen nennt sich Modulo-Operator.
    Eine Rechnung mit dem %-Operator liefert dir den Rest einer Division.

    Beispiel:

    7 geteilt durch 5 ist 1 (die 5 passt nur ein einziges mal "ganz" in die 7).
    der Rest ist 2.

    7 % 5 liefert 2.

    Für das konkrete Beispiel:

    Wenn du eine mehrstellige Zahl % 10 rechnest, liefert er dir die letzte Stelle der Zahl.
    123 % 10 = 3 (12 mal passt die 10 in die 123, 3 bleibt übrig).

    Diese "Modulo-10"-Reste werden aufaddiert.

    Nach der Modulo-Rechnung wird der Int mit 10 dividiert. Was nichts anderes bedeutet, als dass die letzte Stelle "weggeschmissen" wird. (Teile nach dem Komma, werden bei Integern abgeschnitten).
    123 / 10 = 12 (12.3 - aber da int, nur 12)

    Und wie unschwer zu erkennen ist, liefert die Funktion somit die Quersumme einer übergebenen ganzzahligen Zahl.



  • Ike schrieb:

    Gehört übrigens in Ansi C-Forum.

    Ach Quark. 😉 Wie würdest Du den Code denn in C++ anders schreiben und wieso? (Wohlgemerkt, es gibt evtl. gute Gründe, den Code umzuschreiben aber nicht speziell auf C++ gemünzt.)



  • Konrad Rudolph schrieb:

    Ike schrieb:

    Gehört übrigens in Ansi C-Forum.

    Ach Quark. 😉 Wie würdest Du den Code denn in C++ anders schreiben und wieso? (Wohlgemerkt, es gibt evtl. gute Gründe, den Code umzuschreiben aber nicht speziell auf C++ gemünzt.)

    ich dachte alle probleme, die in c++ komplett in die teilmenge von c fallen, ins ansi-c-forum gehören. meine meinung war, dass hier nur c++-spezifische fragen geklärt werden!?



  • Ich denke bei so einer Frage lohnt sich das verschieben eh nicht...
    bzw.
    Es gehört auch zu C++ also kann man das wohl in beiden subforen posten...



  • hihi, ich finde diese diskussionen bzgl. c und c++ total lustig...

    bin selber gerade von c zu c++ umgestiegen( nach 5 jahren programmierung)

    c++ ist eine abwandlung(erweiterung) von c und daher sollten so gut wie alle themen, die im forum "c++" stehen und viel(nur) mit c zu tun haben, trotzdem nicht ins c-forum geschoben werden....hoffe ihr versteht mich 😮 😮 😮

    soviel zu mir 😉



  • Nein ... es ist bei weitem nicht nur eine erweiterung ... und davon abgesehen sollten alle C-Sachen auch ins C-Forum ... wenn schon extra eins da ist 🙂



  • finde ins ansi-c forum sollten nur ansi-c spezifische dinge. wenn also alle erklärungen, beispiele, annahmen und so weiter strikt unter ansi-c betrachtet werden sollen. für allgemeine fragen ist das c++ forum besser geeignet.



  • Außerdem ist C++ aktuell nicht ganz zum C99 Standard kompatibel, wobei das sich mit dem C++0x Standard wohl ändern wird


Anmelden zum Antworten