Solución a la Tarea 5: Fracciones continuas

En esta tarea resulta muy importante darse cuenta de que es buena idea procesar los datos comenzando a partir del último. En cualquier caso, se debe observar que ya sea el primer dato o el último dato se debe procesar de forma especial. ¿Porqué?

#include <stdio.h>
 
int main(void)
{
  int i, n;
  int z[1000];
  double x;
 
  scanf("%d", &n);
  for (i = 0; i < n; i++)
    scanf("%d", &z[i]);
  x = z[n-1];
  for (i = n-2; i >= 0; i--)
    x = z[i] + 1.0/x;
  printf("%lf\n", x);
  return 0;
}

Los valores de entrada y salida empleados para la evaluación fueron los siguientes:

Entrada                              Salida (aproximada)
4 3 6 1 2                            3.150000
3 3 7 15                             3.141509
5 3 7 15 1 292                       3.141593
3 1 2 2                              1.400000
9 1 2 2 2 2 2 2 2 2                  1.414213
10 1 1 1 1 1 1 1 1 1 1               1.618182
16 2 1 2 1 1 4 1 1 6 1 1 8 1 1 10 1  2.718282
4 2 1 2 1                            2.750000
9 1 2 3 4 5 6 7 8 9                  1.433127
9 81 64 49 36 25 16 9 4 1            81.01562

Para probar su tarea en UNIX, escriban la instrucción gcc fraconNN.c -o fracon para compilar su programa, y la instrucción ./fracon para correrlo. Algunos errores comúnes fueron: (a) Olvidarse de procesar un dato, ya sea el primero o el último. (b) No procesar adecuadamente el primero o el último dato. (c) Usar enteros en lugar de dobles o flotantes para los datos de salida. Además, les recuerdo que sólo deben enviar el archivo .c y que éste debe tener el nombre correcto.