cuando dices error no se si te refieres a error de compilacion o a que el programa no te funciona correctamente.
deberias tener en cuenta si el numero "max" introducido por el usuario es mayor o menor que el tamaño de la tabla. y en el "printf" del final, estas imprimiendo enteros, por lo tanto el especificador de formato deberia ser %d y no %s que es para una cadena. este de aqui esta probado y funciona correctamente:
#include <stdio.h>
#define TAM 10
int main ()
{
int tabla[TAM]= {1, 1};
int i, max;
for (i = 2; i < max && i < TAM; i++)
tabla[i] = tabla[i-1] + tabla[i-2];
for (i = 0; i < max && i < TAM; i++)
return 0;
}
otra manera seria hacerlo con punteros, asi declararias el tamaño de la tabla una vez sabes cuantos numeros, "max", quiere ver el usuario.
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int *tabla;
int i, max;
tabla
=(int*)malloc(max
*sizeof(int)); *tabla=1;
*(tabla+1)=1;
for (i = 2; i < max; i++)
*(tabla+i) = *(tabla+i-1) + *(tabla+i-2);
for (i = 0; i < max; i++)
return 0;
}
espero que te haya servido!