Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. /* ---------------------------------- */
  7. int i, j, k;
  8. int n_colrow;
  9. /* ---------------------------------- */
  10. printf("Programa para calcular la determinante de una matriz por reduccion de Gauss \n \n");
  11.  
  12. printf("Ingrese el orden de la matriz: ");
  13. scanf("%i", &n_colrow);
  14.  
  15. /* ---------------------------------- */
  16. int counter;
  17. float escalar_determ, matriz[n_colrow][n_colrow], matriz_apoyo[n_colrow][2];
  18. /* ---------------------------------- */
  19.  
  20. for (i = 0; i < n_colrow; i++)
  21. {
  22. printf("\nIngrese los valores del renglon %i\n", i + 1);
  23. for (j = 0; j < n_colrow; j++)
  24. {
  25. printf("Ingrese el elemento %i: ", j + 1);
  26. scanf("%f", &matriz[i][j]);
  27. }
  28. }
  29.  
  30. counter = -1;
  31. escalar_determ = 1.0;
  32.  
  33. /* Iteracion por renglon para verificar que en la diagonal principal no haya ceros */
  34. for (i = 0; i < n_colrow; i++)
  35. {
  36. counter += 1;
  37. if (matriz[i][counter] == 0)
  38. {
  39. for (j = counter + 1; j < n_colrow; j++)
  40. {
  41. if (matriz[i][j] != 0)
  42. {
  43. escalar_determ = escalar_determ * -1;
  44. for (k = 0; k < n_colrow; k++)
  45. {
  46. matriz_apoyo[k][0] = matriz[k][counter];
  47. matriz_apoyo[k][1] = matriz[k][j];
  48. }
  49. for (k = 0; k < n_colrow; k++)
  50. {
  51. matriz[k][counter] = matriz_apoyo[k][1];
  52. matriz[k][j] = matriz_apoyo[k][0];
  53. }
  54. break;
  55. }
  56. else
  57. {
  58. printf("\nEl valor de la determinantes es igual a cero\n");
  59. system("pause");
  60. exit(0);
  61. }
  62. }
  63. }
  64. }
  65.  
  66. /* ---------------------------------- */
  67. float var_apoyo;
  68. /* ---------------------------------- */
  69.  
  70. counter = -1;
  71. for (i = 0; i < n_colrow; i++)
  72. {
  73. counter += 1;
  74. var_apoyo = 1 / matriz[i][i];
  75. escalar_determ = escalar_determ * (1 / var_apoyo);
  76.  
  77. for (j = 0; j < n_colrow; j++)
  78. {
  79. matriz[i][j] = matriz[i][j] * var_apoyo;
  80. }
  81. for (j = counter + 1; j < n_colrow; j++)
  82. {
  83. var_apoyo = matriz[j][i];
  84. for (k = 0; k < n_colrow; k++)
  85. {
  86. matriz[j][k] = matriz[j][k] - (var_apoyo * matriz[i][k]);
  87. }
  88. }
  89. }
  90.  
  91. /* Impresion de los resultados */
  92. printf("\nEl valor de la determinante es: %0.3f", escalar_determ);
  93.  
  94. printf("\n");
  95. system("pause");
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement