#include <stdio.h>
void mostraMatriz(int tam, int mat[tam][tam]) {
int i, j;
for (i=0; i<tam; i++) {
for (j=0; j<tam; j++) {
}
}
}
void transposta(int tam, int mA[tam][tam], int mT[tam][tam]) {
int i, j;
for (i=0; i<tam; i++) {
for (j=0; j<tam; j++) {
mT[i][j] = mA[j][i];
}
}
}
void multiplica(int tam, int mA[tam][tam], int mB[tam][tam], int mR[tam][tam]) {
int i, j, k, soma;
for (i=0; i<tam; i++) {
for (k=0; k<tam; k++) {
soma = 0;
for (j=0; j<tam; j++) {
soma = soma + mA[i][j] * mB[j][k];
}
mR[i][k] = soma;
}
}
}
int main(void) {
int tam, i, j;
int mA[tam][tam], mB[tam][tam], mR[tam][tam], mT[tam][tam];
//ler matriz A e depois matriz B
for (i=0; i<tam; i++) {
for (j=0; j<tam; j++) {
}
}
for (i=0; i<tam; i++) {
for (j=0; j<tam; j++) {
}
}
//transposta
transposta(tam, mA, mT);
//multiplica
multiplica(tam, mA, mT, mR);
//compara matrizes
int iguais = 1;
for (i=0; i<tam; i++) {
for (j=0; j<tam; j++) {
if (mR[i][j] != mB[i][j]) {
iguais = 0;
printf("diferentes na posicao %i e %i\n", i
, j
); break; //faz para os FOR quando achar
}
}
}
if (iguais) {
} else {
}
//apenas para mostrar os valores das matrizes
mostraMatriz(tam, mA);
mostraMatriz(tam, mB);
printf("\nMatrizA * MatrizA'\n"); mostraMatriz(tam, mR);
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG1vc3RyYU1hdHJpeihpbnQgdGFtLCBpbnQgbWF0W3RhbV1bdGFtXSkgewoJaW50IGksIGo7Cglmb3IgKGk9MDsgaTx0YW07IGkrKykgewoJCWZvciAoaj0wOyBqPHRhbTsgaisrKSB7CgkJCXByaW50ZigiJWkgIiwgbWF0W2ldW2pdKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJfQp9Cgp2b2lkIHRyYW5zcG9zdGEoaW50IHRhbSwgaW50IG1BW3RhbV1bdGFtXSwgaW50IG1UW3RhbV1bdGFtXSkgewoJaW50IGksIGo7Cglmb3IgKGk9MDsgaTx0YW07IGkrKykgewoJCWZvciAoaj0wOyBqPHRhbTsgaisrKSB7CgkJCW1UW2ldW2pdID0gbUFbal1baV07CgkJfQoJfQp9Cgp2b2lkIG11bHRpcGxpY2EoaW50IHRhbSwgaW50IG1BW3RhbV1bdGFtXSwgaW50IG1CW3RhbV1bdGFtXSwgaW50IG1SW3RhbV1bdGFtXSkgewoJaW50IGksIGosIGssIHNvbWE7Cglmb3IgKGk9MDsgaTx0YW07IGkrKykgewoJCWZvciAoaz0wOyBrPHRhbTsgaysrKSB7CgkJCXNvbWEgPSAwOwoJCQlmb3IgKGo9MDsgajx0YW07IGorKykgewoJCQkJc29tYSA9IHNvbWEgKyBtQVtpXVtqXSAqIG1CW2pdW2tdOwoJCQl9CgkJCW1SW2ldW2tdID0gc29tYTsKCQl9Cgl9Cn0KCmludCBtYWluKHZvaWQpIHsKCWludCB0YW0sIGksIGo7CglzY2FuZigiJWkiLCAmdGFtKTsKCWludCBtQVt0YW1dW3RhbV0sIG1CW3RhbV1bdGFtXSwgbVJbdGFtXVt0YW1dLCBtVFt0YW1dW3RhbV07CgkKCS8vbGVyIG1hdHJpeiBBIGUgZGVwb2lzIG1hdHJpeiBCCglmb3IgKGk9MDsgaTx0YW07IGkrKykgewoJCWZvciAoaj0wOyBqPHRhbTsgaisrKSB7CgkJCXNjYW5mKCIlaSIsICZtQVtpXVtqXSk7CgkJfQoJfQoJCglmb3IgKGk9MDsgaTx0YW07IGkrKykgewoJCWZvciAoaj0wOyBqPHRhbTsgaisrKSB7CgkJCXNjYW5mKCIlaSIsICZtQltpXVtqXSk7CgkJfQoJfQoJCgkvL3RyYW5zcG9zdGEKCXRyYW5zcG9zdGEodGFtLCBtQSwgbVQpOwoJLy9tdWx0aXBsaWNhCgltdWx0aXBsaWNhKHRhbSwgbUEsIG1ULCBtUik7CgoJLy9jb21wYXJhIG1hdHJpemVzCglpbnQgaWd1YWlzID0gMTsKCWZvciAoaT0wOyBpPHRhbTsgaSsrKSB7CgkJZm9yIChqPTA7IGo8dGFtOyBqKyspIHsKCQkJaWYgKG1SW2ldW2pdICE9IG1CW2ldW2pdKSB7CgkJCQlpZ3VhaXMgPSAwOwoJCQkJcHJpbnRmKCJkaWZlcmVudGVzIG5hIHBvc2ljYW8gJWkgZSAlaVxuIiwgaSwgaik7CgkJCQlicmVhazsgLy9mYXogcGFyYSBvcyBGT1IgcXVhbmRvIGFjaGFyCgkJCX0KCQl9Cgl9CglpZiAoaWd1YWlzKSB7CgkJcHJpbnRmKCJjb3JyZXRvXG4iKTsKCX0gZWxzZSB7CgkJcHJpbnRmKCJpbmNvcnJldG9cbiIpOwoJfQoJCgkvL2FwZW5hcyBwYXJhIG1vc3RyYXIgb3MgdmFsb3JlcyBkYXMgbWF0cml6ZXMKCXByaW50ZigiTWF0cml6IEFcbiIpOwoJbW9zdHJhTWF0cml6KHRhbSwgbUEpOwoJcHJpbnRmKCJcbk1hdHJpeiBCXG4iKTsKCW1vc3RyYU1hdHJpeih0YW0sIG1CKTsKCXByaW50ZigiXG5NYXRyaXpBICogTWF0cml6QSdcbiIpOwoJbW9zdHJhTWF0cml6KHRhbSwgbVIpOwp9