Advertisement
lucks232

fixed

Mar 31st, 2022
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int calcMatriz(int matriz[100][100], int orden)
  7. {
  8.  
  9.     int submatriz[100][100];
  10.     int determinant = 0;
  11.    
  12.     if (orden == 2)
  13.     {
  14.         return (matriz[0][0] * matriz[1][1] - matriz[0][1] * matriz[1][0]);
  15.     }
  16.     else
  17.     {
  18.         for (int pos = 0; pos < orden; pos++) //Definimos la posición del valor que afectará (más tarde) al signo en la fórmula de la adjunta (-1)^pos
  19.         {
  20.             int subi = 0;
  21.             for (int i = 1; i < orden; i++)
  22.             {
  23.                 int subj = 0;
  24.                 for (int j = 0; j < orden; j++)
  25.                 {
  26.                     if (j == pos)
  27.                         continue;
  28.                     else
  29.                         submatriz[subi][subj] = matriz[i][j];
  30.                         subj++;
  31.                 }
  32.                 subi++;
  33.             }
  34.             determinant = determinant + pow(-1, pos) * matriz[0][pos] * calcMatriz(submatriz, orden - 1);
  35.         }
  36.     }
  37.     return determinant;
  38. }
  39.  
  40. int main()
  41. {
  42.     int orden, matriz[100][100];
  43.     cout << "Indique el orden de la matriz que desea calcular: ";
  44.     cin >> orden;
  45.     cout << "\n\nAhora introduzca los valores para dicha matriz:\n";
  46.    
  47.     if (orden > 100) {
  48.         return(0);
  49.     }
  50.  
  51.     else
  52.  
  53.     for (int i = 0; i < orden; i++)
  54.     {
  55.         cout << "\nValores de la fila " << i + 1 << ":\n\n";
  56.         for (int j = 0; j < orden; j++) {
  57.             cin >> matriz[i][j];
  58.         }
  59.     }
  60.  
  61.     cout << "\nSu matriz tiene este aspecto: \n\n";
  62.    
  63.     for (int i = 0; i < orden; i++)
  64.     {
  65.         for (int j = 0; j < orden; j++)
  66.         {
  67.             cout << matriz[i][j] << " ";
  68.         }
  69.         cout << endl;
  70.     }
  71.  
  72.     cout << "\nEl determinante de su matriz es: " << calcMatriz(matriz, orden);
  73.  
  74.     cout << "\nQuiere calcular otro determinante? (Y o N): ";
  75.     char a;
  76.     cin >> a;
  77.  
  78.     if (a == 'Y' || a == 'y')
  79.     {
  80.         cout << "\n-------------------------------------------\n";
  81.         return(main());
  82.     }
  83.  
  84.     system("pause");
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement