Al salir del bucle, i vale 20, momento en que la condición del bucle (i<=19) deja de cumplirse y sale. Sin embargo, no has establecido ningún valor en fibonacci[20], básicamente porque esa posición ni siquiera pertenece al vector (el vector tiene tamaño 20, posiciones de 0 a 19)
Lo que deberías poner es cout << fibonacci[MAX-1];
Eso si, ten en cuenta que eso solo te mostrará el último término de la sucesión de fibonacci, si quieres que te imprima por pantalla todos los términos a partir del segundo, tienes que meter fibonacci[i] dentro del bucle, y por supuesto después de asignar a fibonacci[i] su valor
Es decir:
#include
#include
using namespace std;
int main ()
{
const int MAX = 20;
typedef int vector20 [MAX]; //Definición del tipo vector de 20 elementos
vector20 fibonacci; //Definición del vector "fibonacci"
fibonacci [0] = 0;
fibonacci [1] = 1;
cout << "Los primeros veinte términos de la sucesión: "<< endl;
int i;
for (i=2; i<=(MAX-1); i++)
{
fibonacci [i] = fibonacci [i-1] + fibonacci [i-2];
cout << fibonacci [i] << " ";
}
system ( "PAUSE" ) ;
return 0;
}
Y yo te recomendaría quitar el system("pause"), ya que si por ejemplo ejecutas ahora mismo el programa en linux, o si en un futuro deciden eliminar el comando pause de la consola de comandos de windows dará un error al llegar a esa línea. El programa funcionará correctamente, simplemente te dará el error que puedes tener al escribir mal un comando en la consola de windows.
Si quieres forzar a hacer una pausa utiliza cin.get()