Negative Zahlen einlesen--->wie?



  • Hey Leute,

    ich bearbeite gerade ein paar Übungsaufgaben und habe Ansätze ber irgendwie klappt nicht alles:
    Könnt ihr mir weiter helfen?
    Aufgabe: Ich soll Zahl(Basis) eingeben und den dazugehörigen Exponenten(auch Minus Werte)
    Aber ich habe das Gefühl, dass die Schleife "c>=b" wiederspricht, da wenn b ein negativer Wert ist, es nicht größer als c seien kann.
    Danke

    #include<stdio.h>

    int main(){

    int a,b,c,d;
    d=1;

    printf("Bitte waehlen Sie eine Zahl aus: \n");
    scanf("%d", &a);
    printf("Bitte geben Sie einen Exponenten ein: \n");
    scanf("%d", &b);

    for(c=0; c<=b; c++){
    d = a * d;
    printf("Das Ergebnis ist %i\n", d);
    }

    return 0;
    }



  • Für negative b brauchst du eine andere Schleife, die erstens rückwärts zählt und zweitens die Werte durch wiederholte Division berechnet. Außerdem solltest du berücksichtigen, dass die Ergebnisse nicht mehr in ints passen.



  • Deine Rechnung weist eher darauf hin, dass die Zahl selbst, nicht der Exponent negativ sein darf, denn bei einem negativen Exponenten müsstest Du anders rechnen.

    Damit die Schleife für zB -3 genau so oft läuft, wie für +3 kannst Du die Absolut-Funktion aus stdlib.h benutzen:

    for(c=0; c<=abs(b); c++){
    


  • Ja, du hast recht. Das ist ein Problem.

    Was bedeuten denn negative Exponenten?
    Evtl. musst du da eine Fallunterscheidung machen.

    Deine Überschrift "Negative Zahlen einlesen--->wie? " hat nichts mit dem Problem zu tun.
    Das klappt ja.
    Und benutze beim nächsten mal bitte die Code-Tags.
    Ist ganz einfach: Code markieren und auf den C-Button unter dem 😡 klicken.
    (oder editier den Beitrag nochmal)

    Variablennamen sind auch nicht auf einen Buchstaben begrenzt.
    Nimm sprechende Variablennamhen wie basis oder exponent. Dann kann man den Code besser lesen.


Anmelden zum Antworten