Buscar

Multiplicação de matrizes em C

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
}

Continue navegando