Error in Matrix C Printing

0

I'm trying to fill an array recursively to get how many vector values are the same, but it's not working and I do not know where the problem is.

  • The matrix is generated from the comparison of 2 strings

  • If the values between the vector1 [x] and the vector2 [y] are equal to the position matrix [x] [y] gets a value

  • If not, one of the array values is repeated

Here is the code I have:

int rec(char vet1[], char vet2[], int mat[][tam], int x, int y)
{

  if(mat[x][y] != NULL ) \  a matriz completa é preenchida com NULL inicialmente, seguida por primeira linha e coluna com 0. Desta forma a recursão pode parar.
  {
     return mat[x][y];
  }
  else
  {
      if(vet1[x] == vet2[y]) \ compara 2 valores de um vetor de char, se forem iguais, preenche a posição da matriz com a posição anterior + 1
      {
         mat[x][y] = rec(vet1, vet2, mat, x-1, y-1) + 1;
      }
      else // mas se não forem iguais, repete o maior valor achado anteriormente na matriz
      {
         mat[x-1][y] = rec(vet1, vet2, mat, x-1, y);
         mat[x][y-1] = rec(vet1, vet2, mat, x, y-1);
         if(mat[x-1][y] < mat[x][y-1])
         {
            mat[x][y] = mat[x][y-1];
         }
         else
         {
            mat[x][y] = mat[x-1][y];
         }
      }
   }
}

    
asked by anonymous 05.02.2018 / 13:01

0 answers