#include #define TAM 40 void LeMatriz(int n, double M[TAM][TAM]) { int i, j; puts("Entre com os valores:"); for (i = 0; i < n; i++) { printf("Linha %2d\n", i); for (j = 0; j < n; j++) { printf("\tColuna %2d\n", j); scanf("%lf", &M[i][j]); } } } void ImprimeMatriz(int n, double M[][TAM]) { int i, j; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf("%7.3f", M[i][j]); putchar('\n'); } } void TriangularizaMatriz(int n, double a[TAM][TAM]) { int i, j, k; double fator; for (i = 0; i < n-1; i++) { /* i percorre a diagonal */ for (j = i+1; j < n; j++) { /* j percorre a coluna abaixo */ fator = -a[j][i]/a[i][i]; /* printf("%d %8.2f %8.2f\n", j, a[j][i], fator); */ for (k = i; k < n; k++) { /* k percorre o resto da linha */ a[j][k] += fator*a[i][k]; } } } } int main() { double m[TAM][TAM]; int n; printf("Qual o tamanho da matriz? "); scanf("%d", &n); LeMatriz(n, m); puts("------------------"); ImprimeMatriz(n, m); TriangularizaMatriz(n, m); puts("------------------"); ImprimeMatriz(n, m); puts("------------------"); return 0; }