Hallo, ich habe Probleme mit diesem Programm in C++ auf Fibonacci, ich habe versucht, auf google die fehler zu suchen, aber ich habe keine lösung/erklärung gefunden.Fibonacci C++ - ungültige Konvertierung von 'int' zu 'int *' und Initialisierung des Arguments 2/3 von 'int fibo (int, int *, int *)'
Es ist der Code:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cmath>
using namespace std;
int fibo(int,int*,int*);
int conta=0;
int main() {
int n,m,f;
int fibN=1;
int fibNMeno1=0;
cout << "Calcolo del numero di Fibonacci di indice n \n \n" << endl;
cout << "Introdurre n (positivo e minore di 47:" << endl;
cin >> n;
n=abs(n/1);
if (n<1) {
fibN=0;
}
else {
fibo(n,fibN,fibNMeno1);
}
cout << "\n Fibonacci di indice " << n << "vale: " << fibN << endl;
cout << "\n numero di chiamate ricorsive: " << conta << "\n\n" << endl;
}
int fibo(int n, int*pfn, int* pfnMeno1) {
int t;
int tFn,tFnMeno1,tF;
conta++;
if (n==1) {
*pfn=1; *pfnMeno1=0; return 1;
}
else {
t=n%2; n=n/2;
fibo(n,pfn,pfnMeno1);
tFn=(*pfn)*(*pfn)+2*(*pfn)*(*pfnMeno1);
tFnMeno1=(*pfn)*(*pfn) + (*pfnMeno1)*(*pfnMeno1);
if(t) {
tF=tFn;
tFn=tFn + tFnMeno1;
tFnMeno1=tF;
}
*pfn=tFn;
*pfnMeno1=tFnMeno1;
return 3;
}
}
Wo ist der Fehler? Wie funktioniert es bei C++ mit *?
fibonacci.cpp: In function ‘int main()’:
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 2 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
^
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 3 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
Vielen Dank! – Tryneed