Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C potenzrechnung ?

Empfohlene Antworten

Veröffentlicht

servus

ich wollte mit "pow" potenzen berechnen...man gibt die basis an und den exponent ebenfalls.

Wie würde die funktion aussehen ? ich bekomm es einfach net auf die reihe ?

gruß

will eine standart nehmen bzw mit pow

edit:

hier mal der quelltext

int pow (int x,int y )

{

if (x==1) return 1;

return x * pow ( x,y );

return 0;

}

Bearbeitet von amm0

will eine standart nehmen bzw mit pow
Bitte was? Vollständige deutsche Sätze erleichtern das Verständnis.

hier mal der quelltext

Ja, schöne Endlosrekursion. Die Funktion ruft sich selbst immer wieder mit denselben Parametern auf. Wie soll das jemals enden?

ich schreib hier rein, damit wir geholfen wird und nicht dass ihr über meine deutschkenntnisse spekuliert

ja dass es ins endlose läuft hätte ich mir auch fast gedacht, nur wie wärs mal mit einem vorschlag für die fehlerbehebung ?:floet:

nur wie wärs mal mit einem vorschlag für die fehlerbehebung ?:floet:

Gegenfrage: Wie wär's mit einer ausformulierteren, mehr oder weniger verständlichen Fehlerbeschreibung? :rolleyes:

ich schreib hier rein, damit wir geholfen wird und nicht dass ihr über meine deutschkenntnisse spekuliert
Je mehr Mühe du dir beim Erstellen deiner Beiträge gibtst, desto besser kann dir geholfen werden. Und warum sollten sich die Helfer mehr Mühe geben als du?

ja dass es ins endlose läuft hätte ich mir auch fast gedacht,
Ja, nur geschrieben hast du es nicht. Wir haben anderthalb Stunden damit vertan, rauszufinden, was nun eigentlich das Problem ist.

nur wie wärs mal mit einem vorschlag für die fehlerbehebung ?:floet:
Mach's halt richtig ;)

Im Ernst: Mach dir klar (am besten mit Papier und Bleistift), was passiert, wenn deine Funktion beispielsweise mit (4,2) aufgerufen wird. Dann sollte dir sofort auffallen, was das Problem ist.

Und nun eine ausführliche Antwort:

Das Problem ist, dass deine Methode ebenfalls pow heißt, genauso wie die Funktion aus der Standard-C-Library. Lösung: Benenn deine Methode um

pow(2,3) = 2³

D.h. du brauchst gar keine Abfragen ob x = 1, weil pow(1,irg.was)=1^irg.was=1 ist.

Auch brauchst du das richtige Ergebnis nicht nochmal mit x zu multiplizieren, das würde nur den Exponenten um 1 erhöhen, außer das ist von dir so gewollt.

Noch ein Tipp: Benutze als Rückgabewert long int, da die Werte schnell wachsen und du mit int schneller einen Überlauf bekommen könntest als mit long int.

Wenn du pow selber implementieren willst, dann ist es am einfachsten mit einer Schleife:

long int eigenepow(int x, int y) {

int i;

long int ergebnis = 1;


for (i=0; i<x; i++) ergebnis = ergebnis * x; 

return ergebnis;

}

Code nicht getestet

Da editieren nicht geht... mir fällt da noch ein, für pow musst du die math.h includen und evtl.mit dem flag -lm compilieren, außerdem gibt pow(x,y) einen double-Wert zurück und int long gibts in C ja gar nicht :-D Das habe ich noch von Object Pascal im Blut ;) Naja wie gesagt, brauchst ja eh double, oder du machst dir eine eigene Methode, dann am besten mit long, und mein Code da funktioniert nur mit positiver Basis (x). Aber leicht zu verfollständigen

MfG

ist pow 1^irg =1 oder irg^0 = 1? Würd gern den standardwert wissen?!? Weiß das zufällig jemand?

ist pow 1^irg =1 oder irg^0 = 1? Würd gern den standardwert wissen?!? Weiß das zufällig jemand?

Ja, jede Formelsammlung und auch Wikipedia.

Let me google that for you

Beim Wikipediaeintrag gibt es eine schoene Tabelle!

Gibt es da nicht einen Spruch in der Richtung "Gott hilft dem, der sich selbst hilft!"? Die Hemmschwelle eine Suchmaschine zu benutzen scheint immer hoeher zu werden...:rolleyes:

jau meinte ich ^^ sorry :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.