Grundlagen
-
Ich möchte ein Programm schreiben das x^n berechnet. Es soll einfach auf der Konsole x und n einlesen und dann rechnen. Leider funktioniert das so wie ich es mir denke noch nicht. Es kommt immer 0 raus. Wo ist da mein denkfehler?
void main ()
{
float x;
int n;
int ergebnis;
int zaehler=0;
printf("Bitte geben sie erst die Basis und dann den Exponenten ein!\n");
scanf("%f", &x);
scanf("%d", &n);
ergebnis=x;
while(zaehler<=n)
{
ergebnis=ergebnis*x;
zaehler++;
}
printf("%f", ergebnis);}
Wo ist da der Fehler?
Vieleicht kann mir ja jemand helfen....
Danke!
-
Mal abgesehen davonb, das du hier im falschen Forum bist.
Du kannst einen integer nicht mit dem Platzhalter %f ausgeben, der ist nur für die Datentypen float und double. Du must %i verwenden, also:
printf("%i", ergebnis);
-
Frag das nächste mal im Ansi C o. C++ Forum.
-
Sorry, ich packs nächstes mal ins andere Forum...
Ich hab's nun so gemacht:
Leider liefert das Programm immernoch ein falsches Ergebnis. Ich weis nicht was ich falsch mache.void main ()
{
float x;
int n;
float ergebnis;
int zaehler=0;
printf("Bitte geben sie erst die Basis und dann den Exponenten ein!\n");
scanf("%f", &x);
scanf("%d", &n);
ergebnis=x;
printf("Ergenis %f", &ergebnis);
while(zaehler<=n)
{
ergebnis=ergebnis*x;
zaehler++;
//printf("%f",ergebnis);
}
printf("%f", ergebnis);}
-
versuche es doch mal mit pow(double, double)
--> Is in in <math.h> definiert.
-
Ich sollte das schon selber programmieren und keine vordefinierte Funktion nutzen.
-
vll versuchst du statt dem printf und scanf lieber cout und cin zur ein- und Ausgabe=? Ist leichter weil man da nicht so viele mit den Parametern beachten muss.
-
warum cout -->es ist doich ne C-Application, soviel Schreibarbeit ist das nun auch wieder nicht.
-
Ich habs nun hinbekommen. Danke nochmal für eure hilfe!