Baixe o app para aproveitar ainda mais
Prévia do material em texto
Multiplicação de matrizes em C: 1) #include<stdio.h> #include<math.h> int main(void){ int d1,d2,d3,d4; printf("Digite as dimensões n m da matriz A"); scanf("%d %d",&d1,&d2); printf("Digite as dimensões n m da matriz B"); scanf("%d %d",&d3,&d4); int A[d1][d2],B[d3][d4],C[d1][d4],temp; int i,j,k; if (d2 == d3) { printf("Carregue linha a linha os elementos da matriz A: \n"); for (i=0;i<d1;i++) { for (j=0;j<d2;j++){ scanf("%d",&A[i][j]); } } printf("\n"); printf("Matriz A carregada: \n"); for (i=0;i<d1;i++) { for (j=0;j<d2;j++){ printf("%d ",A[i][j]); } printf("\n"); } printf("Carregue linha a linha os elementos da matriz B: \n"); for (i=0;i<d3;i++) { for (j=0;j<d4;j++){ scanf("%d",&B[i][j]); } } printf("\n"); printf("Matriz B carregada: \n"); for (i=0;i<d3;i++) { for (j=0;j<d4;j++){ printf("%d ",B[i][j]); } printf("\n"); } for (i=0;i<d1;i++){ for (j=0;j<d4;j++){ C[i][j] = 0; } } temp = 0; for (i=0;i<d1;i++){ for (j=0;j<d4;j++){ for (k=0;k<d2;k++){ temp += A[i][k]*B[k][j]; } C[i][j]=temp; temp=0; } } printf("\n"); printf("Matriz C resultante: \n"); for (i=0;i<d1;i++) { for (j=0;j<d4;j++){ printf("%d ",C[i][j]); } printf("\n"); } } else{ printf("Valores incoerentes de dimensão para as matrizes A e B"); } //1 0 0 3 0 0 3 0 0 //0 2 0 0 5 0 0 10 0 //0 0 3 0 0 8 0 0 24 } 2) outra possibilidade: #include<stdio.h> #include<math.h> int main(void){ int A[3][3],B[3][3],C[3][3],temp; int i,j,k; printf("Carregue linha a linha os elementos da matriz A: \n"); for (i=0;i<3;i++) { for (j=0;j<3;j++){ scanf("%d",&A[i][j]); } } printf("\n"); printf("Matriz A carregada: \n"); for (i=0;i<3;i++) { for (j=0;j<3;j++){ printf("%d ",A[i][j]); } printf("\n"); } printf("Carregue linha a linha os elementos da matriz B: \n"); for (i=0;i<3;i++) { for (j=0;j<3;j++){ scanf("%d",&B[i][j]); } } printf("\n"); printf("Matriz B carregada: \n"); for (i=0;i<3;i++) { for (j=0;j<3;j++){ printf("%d ",B[i][j]); } printf("\n"); } for (i=0;i<3;i++){ for (j=0;j<3;j++){ C[i][j] = 0; } } temp = 0; for (i=0;i<3;i++){ for (j=0;j<3;j++){ for (k=0;k<3;k++){ temp += A[i][k]*B[k][j]; } C[i][j]=temp; temp=0; } } printf("\n"); printf("Matriz C resultante: \n"); for (i=0;i<3;i++) { for (j=0;j<3;j++){ printf("%d ",C[i][j]); } printf("\n"); } //1 0 0 3 0 0 3 0 0 //0 2 0 0 5 0 0 10 0 //0 0 3 0 0 8 0 0 24 }
Compartilhar