Pregunta Cálculo de números de Fibonacci en código C ++


Mi pregunta es: Tengo una matriz. Necesito calcular el número de Fibonacci correspondiente a cada entrada en esa matriz, y devolver esos valores a otra matriz. Sigo recibiendo un C2109 "El subíndice requiere matriz o tipo de puntero", y sé de dónde viene, y sé lo que significa, pero no sé cómo

  1. arreglalo
  2. hacer que mi código funcione

En este momento, no hace nada. No estoy seguro de si estoy devolviendo algún valor de mi función de Fibonacci o si estoy llamando correctamente en mi función principal. Lo modifiqué de lo que originalmente era. Aquí está mi nuevo código:

const int     row1 = 3;
const int     col1row2 = 3;
const int     col2 = 3;

int fibonacci (int [][col2]);

void main()
{
     int   p[row1][col2],  f [row1][col2];
     int sum; 
     input (a,b); 

     cout<<"The Fibonacci Matrix is:   ";
     cout<<fibonacci(p);    
     for ( int  i = 0; i < row1; i++)
     {
          for ( int  j = 0; j < col2; j++)
              {
                    sum = f[i][j]; 
                    f[i][j] = fibonacci(p);           
              }
     }
     cout<<endl;
}


int fibonacci (int z[][col2])
{
     int   fib [100]  =  {0 , 1};
     int sum = 0;

     for ( int m = 2; m < 100; m++)
     {
           sum =  fib[m-1] + fib[m-2];
           fib[m] = sum;
     }
     return sum;
     cout<<endl;
}

¡Cualquier ayuda es apreciada!


7
2018-03-02 01:50


origen


Respuestas:


Creo que el problema es que esta línea:

f [i][j] = fib [ p [i][j] ];

Está tratando de llamar al fib funciona incorrectamente Aquí tiene la idea correcta, pero para llamar a una función en C ++ necesita usar paréntesis regulares en lugar de corchetes. Creo que esta línea debería verse

f [i][j] = fib ( p [i][j] );

Como seguimiento, su implementación de fib parece que podría ser incorrecto En particular, está tomando dos parámetros correspondientes a las matrices, pero nunca usa esos valores directamente. En cambio, estás construyendo una nueva matriz local de todos los números de Fibonacci. Es probable que desee que esta función devuelva el número de Fibonacci apropiado que genera.

Espero que esto ayude, ¡y la mejor de las suertes en tu viaje a C ++!


4
2018-03-02 01:54



Además de lo que dijo templatetypedef, solo está suministrando un argumento a la función fib pero declaró que toma dos argumentos. Además, el fib () no devuelve un valor: su vacío declarado.

fib( p [i][j] );

Hay un punto y coma que falta también aquí

sum = fib[ m - 1]  +  fib[ m - 2]

2
2018-03-02 02:03