Allora:
in pratica dalla funzione mi ritorna un double (o anche un float ho provato) con un numero strano che sarebbe 1.d#00iecc.ecc
come mai adesso vi posto quello che ho fatto:
#include<stdio.h>
//dichiarazioni di funzione
void insDate(int*,float*);
double expression(int,float,int,double);
int main ()
{
int n;
float x;
double ris;
//titolo
printf("\n\nData l'espessione:\n\nf (x,n) = 1 * x + 2 * x^2 + 3 * x^3 + ... + (n - 1) * x^n-1 + n * x^n\n");
//chiamata della funzione di inserimento dati
insDate(&n,&x);
ris=expression(n,x,1,0);
//visualizzazione finale e chiamata funzione ricorsiva dell'espressione
printf("\n\nAvendo n= %d e x= %3.1f l'espressione da come risultato %.3f",n,x,ris);
}
//definizione della funzione dell'espressione
double expression(int a,float b,int c,double d)
{
d=d+c*b;
printf("d: %f\n",d);
if(c==a)
return(d);
else
expression(a,b*b,c+1,d);
}
alcune parti le ho saltate per questione di spazio, cmq il problema e che d mi ritorna con il numero strano e nn capisco il perche.
grazie per l'aiuto
Aggiorna : il risultato di d mi da 1.#qnan0