FUNZIONI CON FLOAT

di il
3 risposte

FUNZIONI CON FLOAT

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

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte