luefash
05-05-2013, 17:55
Ciao, cerco qualcuno che possa darmi una mano a capire dove ho sbagliato: si tratta di una funzione ricorsiva che implementa un algoritmo per il calcolo della frazione continua. Il risultato che mi da l'output è errato di poco, non riesco proprio a capire dov'è l'errore.
#include <stdio.h>
float CalcFrazCont (int n, int arr[], float sum)
{
int i;
while (i <= n)
{
i++;
sum = sum + (1 / CalcFrazCont (i, arr[i], sum));
}
return sum;
}
int main (void)
{
int i, n;
int arr[100];
float sum;
printf ("Inserisci n: ");
scanf ("%i", &n);
printf ("Inserisci %i valori: \n", n);
for (i = 1 ; i <= n ; i++)
{
printf ("%i° valore= ", i);
scanf ("%i", &arr[i]);
}
sum = arr[1];
printf ("La frazione continua è: %f", CalcFrazCont(n, arr, sum));
return 0;
}
Grazie ;)
#include <stdio.h>
float CalcFrazCont (int n, int arr[], float sum)
{
int i;
while (i <= n)
{
i++;
sum = sum + (1 / CalcFrazCont (i, arr[i], sum));
}
return sum;
}
int main (void)
{
int i, n;
int arr[100];
float sum;
printf ("Inserisci n: ");
scanf ("%i", &n);
printf ("Inserisci %i valori: \n", n);
for (i = 1 ; i <= n ; i++)
{
printf ("%i° valore= ", i);
scanf ("%i", &arr[i]);
}
sum = arr[1];
printf ("La frazione continua è: %f", CalcFrazCont(n, arr, sum));
return 0;
}
Grazie ;)