Brauche dringend Hilfe



  • Bin ein echter Anfänger was das angeht.

    Hallo,
    kann mir jemand einen kompakten c quellcode für diese aufgaben stellung sagen:

    Es ist eine Variable x gegeben, die den wert 0 oder 1 annehmen kann.
    Schreiben Sie in einer Programmiersprache ihrer wahl eine Funktion die folgende anweisungen erfüllt.

    Wenn die Variable x den Wert 0 hat, so soll diese Variable den wert 1 erhalten, und wenn die variable x den wert 1 hat, soll diese den wert 0 erhalten.

    Es soll angeblich in einem Zeile gehen

    danke im vorraus



  • In C++:

    void toggle(int& x) { x = !x; }
    

    EDIT: Bzw. in C:

    void toggle(int* x) { (*x) = !(*x); }
    


  • ui ist das richtig so.
    Gibt es das auch verständlicher für mich ? 😮



  • Vielen Dank für deine super fixe antwort.
    Kannst mir vieleicht auch sagen wie dieses programm aussehen würde wenn ich es mit einer rückgabe machen sollte



  • Also ! ist der Nicht-Operator. Wenn man sagt !x dann macht er aus x eine 1 falls x den Wert 0 hat, ansonsten wird x zu 0.

    & hinter int steht für Referenz. Das bedeutet, dass du nur einen Verweis auf den integer übergibst.

    Du könntest das auch mit if-else machen oder mit ? : , aber gerade letzteres sollte im Moment noch uninteressant sein, da es dich nur verwirrt.

    Die C-Variante arbeitet mit Pointern. Das ist aber wieder ein Kapitel für sich. Habe das nur angemerkt, weil d meintest du willst in C schreiben. Hier ist aber das C++ Forum.

    Probier einfach mal ein wenig herum 😉 .



  • lector schrieb:

    Vielen Dank für deine super fixe antwort.
    Kannst mir vieleicht auch sagen wie dieses programm aussehen würde wenn ich es mit einer rückgabe machen sollte

    Also, da gibt es auch 3 Möglichkeiten

    int toggle(int x) { return !x; }
    
    int toggle(int x) { return (x == 0) ? 1 : 0; }
    
    int toggle(int x) {
      if(x == 0)
        return 1;
      else
        return 0;
    }
    


  • lector schrieb:

    Kannst mir vieleicht auch sagen wie dieses programm aussehen würde wenn ich es mit einer rückgabe machen sollte

    Kein Problem:
    Du übergibst den Wert by Value bzw. by const Reference - je nachdem wie groß der Typ der zuübergebenden Variable ist - rufst den operator! für die Variable auf und returnst das Ergebnis by Value.

    btw:
    es wäre besser wenn du konkrete Fragen stellen würdest - denn deine Aufgaben solltest du schon selber machen.



  • Vielen Dank damit ist mir schon sehr geholfen 👍
    Ich sag nur hier wird mann geholfen 😃


Anmelden zum Antworten