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 demklicken.
(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.