Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- /* ---------------------------------- */
- int i, j, k;
- int n_colrow;
- /* ---------------------------------- */
- printf("Programa para calcular la determinante de una matriz por reduccion de Gauss \n \n");
- printf("Ingrese el orden de la matriz: ");
- scanf("%i", &n_colrow);
- /* ---------------------------------- */
- int counter;
- float escalar_determ, matriz[n_colrow][n_colrow], matriz_apoyo[n_colrow][2];
- /* ---------------------------------- */
- for (i = 0; i < n_colrow; i++)
- {
- printf("\nIngrese los valores del renglon %i\n", i + 1);
- for (j = 0; j < n_colrow; j++)
- {
- printf("Ingrese el elemento %i: ", j + 1);
- scanf("%f", &matriz[i][j]);
- }
- }
- counter = -1;
- escalar_determ = 1.0;
- /* Iteracion por renglon para verificar que en la diagonal principal no haya ceros */
- for (i = 0; i < n_colrow; i++)
- {
- counter += 1;
- if (matriz[i][counter] == 0)
- {
- for (j = counter + 1; j < n_colrow; j++)
- {
- if (matriz[i][j] != 0)
- {
- escalar_determ = escalar_determ * -1;
- for (k = 0; k < n_colrow; k++)
- {
- matriz_apoyo[k][0] = matriz[k][counter];
- matriz_apoyo[k][1] = matriz[k][j];
- }
- for (k = 0; k < n_colrow; k++)
- {
- matriz[k][counter] = matriz_apoyo[k][1];
- matriz[k][j] = matriz_apoyo[k][0];
- }
- break;
- }
- else
- {
- printf("\nEl valor de la determinantes es igual a cero\n");
- system("pause");
- exit(0);
- }
- }
- }
- }
- /* ---------------------------------- */
- float var_apoyo;
- /* ---------------------------------- */
- counter = -1;
- for (i = 0; i < n_colrow; i++)
- {
- counter += 1;
- var_apoyo = 1 / matriz[i][i];
- escalar_determ = escalar_determ * (1 / var_apoyo);
- for (j = 0; j < n_colrow; j++)
- {
- matriz[i][j] = matriz[i][j] * var_apoyo;
- }
- for (j = counter + 1; j < n_colrow; j++)
- {
- var_apoyo = matriz[j][i];
- for (k = 0; k < n_colrow; k++)
- {
- matriz[j][k] = matriz[j][k] - (var_apoyo * matriz[i][k]);
- }
- }
- }
- /* Impresion de los resultados */
- printf("\nEl valor de la determinante es: %0.3f", escalar_determ);
- printf("\n");
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement