a parameter list without types is only allowed in a function definition? int fib(n);?
#include <stdio.h>
#include <stdlib.h>
int fib(n);
int main(void)
{
int n;
int result;
printf("Geben sie bitte eine Natürliche Zahl ein für die die Fibonacci Zahl berechnet werden soll\n");
fflush(stdout);
scanf("%d", &n);
result = fib(n);
printf("fib(%d)= %d",n,result);
}
int fib (int n)
{
if(n==0)
{
return 0;
}
if(n==1)
{
return 1;
}
if(n>1)
{
return fib(n-1)+fib(n-2);
}
}
Wieso sagt der mi: a parameter list without types is only allowed in a function definition? int fib(n);?
2 Antworten
Oben hast du geschrieben int fib(n), unten schreibst du int fib(int n); Bei der Funktionsdeklaration (Ankündigung der Funktion fehlt das int).
Woher ich das weiß:Berufserfahrung – Programmierer
Suboptimierer
22.10.2019, 16:20
@tsanemo
Nein, korrekt müsste sein
int fib( int n );
Die Funktion nimmt einen Integer auf und gibt einen zurück.
Unten steht es wie gesagt richtig, nur nicht zwischen #include... und int main.
@Suboptimierer
Oke dann danke ich schonmal fürs erste für diese schnelle Antwort :)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Programmiersprache
Du hast die Typen bei der Deklaration weggelassen, bei der Definition wiederum geht das.
int fib(int);
int fib(int n){...} /*legal*/
int fib();
int fib(int n){....} /*dito*/
int fib();
int fib(n){...} /*dito*/
Wenn Du Dir selbst und anderen einen Gefallen tun möchtest, hälst Du Prototypendeklaration und Definition konsistent.
also entweder nur fib(n) oder fib(int n) eins von beiden muss ich ändern