Ein Produkt rekursiv berechnen?



  • Hallo zusammen!

    Ich bin gerade in der Klausurvorbereitung und wühle mich durch verschiedene Übungsaufgaben von Kommilitonen. An einer beisse ich mir jedoch die Zähne aus. Vielleicht kann mir ein erfahrener Programmierer aus dem Forum helfen, hier ist die Aufgabenstellung:

    Es sei "feld" ein Array mit "n" Integerzahlen. Schreiben Sie eine rekursive Funktion "produkt", die das Produkt der Zahlen als Rückgabewert liefert. Als Eingabeparameter erhält die Funktion "feld" und "n".

    Mein bisheriger Lösungsansatz:

    [cpp]#include <stdio.h>
    #include <stdlib.h>
    
    int produkt (int feld[] , int n) {
        if ( n=0 ) {
           return feld[0];
        }
        else {
           return feld[n] * produkt(feld,n-1);     [i]// rekursiver Aufruf[/i]
        }
    }
    
    int main(int argc, char *argv[])
    {
      int n = 4;
      int feld[]={1,2,3,4};
      int ergebnis = 0;
    
      ergebnis = produkt(feld,n-1);     [i]// 2.Parameter = "n-1" da das letzte Element  "feld[3]" ist[/i]
      printf("Das Produkt lautet: %i",ergebnis);
    
      return 0;[/cpp]
    }
    

    Dieses Programm funktioniert nicht und ich kann meinen Denkfehler einfach nicht finden. Es wäre echt klasse wenn mir jemand weiterhelfen könnte.

    Gruß, Chris



  • Hallo Chris,

    hab jetzt nicht den ganzen Code durchgedacht...
    aber da steckt bestimmt ein Fehler

    if ( n=0 ) {
    

    Eine Zuweisung willst da bestimmt nicht machen 😉

    if ( n==0 ) {
    

    ist glaub besser

    Grüße
    Micha



  • Oh Mann, ich brech ab!
    Jetzt hab ich die ganze Zeit nach einem Fehler gesucht und dieses kleine einsame "=" einfach übersehen 🙄

    Danke mk_85, jetzt läuft mein Programm. Ich Dussel 😃


Anmelden zum Antworten