Binomialkoeffizient



  • Hi!
    Habe mir folgendes rekursive Programm ausgedacht. Es funktioniert aber nicht. Kann mir jemand sagen warum?

    #include <stdio.h>
    int bino(int n, int k);
    void main(void)
    {
    	int n, k, ausg;
    	printf("Berechnet wird der Binomialkoeffizient (n ueber k)!\nBitte geben Sie n ein: ");
    	scanf("%d",&n);
    	printf("\nBitte geben Sie k ein: ");
    	scanf("%d",&k);
    	ausg=bino(n, k);
    	printf("Der gesuchte Binomialkoeffizient lautet: %d\n",&ausg);
    }
    
    int bino(int n, int k)
    {
    	if (k==0||n==k)
    		return 1;
    	else 
    		return bino(n-1, k-1)+bino(n-1, k);
    }
    


  • Fehlermeldung?
    Falsche Ergebnisse?

    mfg



  • Das Programm liefert für jede Eingabe immer das selbe Ergebnis...
    Irgendetwas wie: 154022345


  • Mod

    mit cout wäre das nicht passiert... lass mal das & im letzten printf weg. dass es richtig int main() sein muss, will auch noch erwähnt sein. ein anständiger compiler warnt übrigens, wenn der formatstring bei printf und konsorten nicht zu den argumenten passt.



  • Pfff... was ein doofer Fehler - danke!
    Bin wohl schon total verblindet 🙂
    Ps.: Unser Prof. besteht auf das void in den Klammern...


  • Mod

    das void in den klammern ist ja ok, wenn auch überflüssig. aber main ist nun mal eine funktion, die ein int zurückgibt. immer.



  • aus alt... <stdio.h>
    mach neu... <cstdio>

    mfg



  • aus alt... <cstdio>
    mach neu... <iostream>


Log in to reply