Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

kann mir jemand sagen wo hier im Programm der fehler ist?

danke

#include <stdio.h>


int eingabe(int *basis, int *exponent)

{

    printf("Bitte geben Sie die Basis ein:\n");

    scanf("%d", basis);

    printf("Bitte geben Sie den Exponenten ein:\n");

    scanf("%d", exponent);

}


int ausgabe(int ergebnis)

{

    printf("Das Ergebnis ist %d.\n", ergebnis);

}


int rechnung(int *ergebnis, int basis, int exponent)

{

    if (exponent == 0)

       return 1;

    *ergebnis = basis * rechnung(basis, exponent - 1);


    ausgabe(*ergebnis);

}


int main(void)

{

    int basis, exponent, ergebnis;


    do

    {

        eingabe(&basis, &exponent);

        rechnung(&ergebnis, basis, exponent);

    }

    while (basis != 0);


    return 0;

}

Geschrieben

Der Fehler? Da sind sehr viele.

Sieht eher nach einer schulischen Aufgabe aus, kann das sein? ;)

schau doch mal ob die Funktionen auch das zurückgeben, was sie zurückgeben sollen... Und auch ob sie das kriegen was sie kriegen sollen...

Geschrieben

ja is weniger ne schulische aufgabe obwohl wir potenzrechnen schon schreiben sollten.

das programm wollte ich nur als kleine übung schreiben =)

sind da wirklich so viele fehler? der compiler zeigt nur 2 an

Geschrieben

Ohne die Zeilen gezählt zu haben tipp ich mal stark dass der Fehler hier liegt:

*ergebnis = basis * rechnung(basis, exponent - 1);

Was fällt Dir auf? Was erwartet die Fkt. und was kriegt sie?

Geschrieben
Ohne die Zeilen gezählt zu haben tipp ich mal stark dass der Fehler hier liegt:

*ergebnis = basis * rechnung(basis, exponent - 1);

Was fällt Dir auf? Was erwartet die Fkt. und was kriegt sie?

also die erwartet eine basis und nen exponenten.

einen fehler konnte ich beheben.... die erste fehlermeldung war das

Geschrieben

So hast Du das aber nicht implementiert. Hier nochmal der Prototyp:

int rechnung(int *ergebnis, int basis, int exponent)

Die kriegt einen Zeiger auf nen int und 2 ints. Im Aufruf von der main aus hast Du es auch richtig gemacht aber die Rekursion ist falsch.

Geschrieben

Hallo,

im moment stehts die zeile so bei mir drin

*ergebnis = basis * rechnung(&basis, exponent - 1);

Na das stimmt mit Sicherheit nicht, da rechnung() drei Argumente haben möchte:

int rechnung(int *ergebnis, int basis, int exponent)

Nic

Geschrieben

sooooo.

endlich gehts :rolleyes:

wens interessiert hab ich hier den quellcode =)

werd noch n paar fehler abfangen. z.B dass keine kommazahlen benutzt werden können.

#include <stdio.h>


int eingabe(int *basis, int *exponent)

{

    printf("Bitte geben Sie die Basis ein:\n");

    scanf("%d", basis);

    printf("Bitte geben Sie den Exponenten ein:\n");

    scanf("%d", exponent);

}


int rechnung(int basis, int exponent)

{

    if (exponent == 0)

       return 1;

    return basis * rechnung(basis, exponent - 1);



}


int main(void)

{

    int basis, exponent;


    do

    {

        eingabe(&basis, &exponent);

        rechnung(basis, exponent);

        printf("Das Ergebnis ist: %d\n", rechnung(basis, exponent));

    }

    while (basis != 0);


    return 0;

}

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...