Lista de Matrizes (Exercicio 8 )
Página 1 de 1
Lista de Matrizes (Exercicio 8 )
Segue abaixo o problema 8 da Lista de Matrizes (Multiplicação de Matrizes)
As matrizes foram preenchidas com a função rand() (Números aleatórios)
foi compilado no Dev C++
- Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // <-- contem as funcoes rand() e srand()
int main(int argc, char *argv[])
{
int mmax = 40;
int nmax = 70;
int pmax = 40;
int i = 0;
int j = 0;
int k = 0;
int soma = 0;
int m = 0;
int n = 0;
int p = 0;
printf(" Dimensoes da Matriz A [M x N]: \n");
printf("\n Forneca M: ");
scanf("%d",&m);
printf("\n Forneca N: ");
scanf("%d",&n);
printf(" Dimensoes da Matriz B [%d x P]: \n", n);
printf("\n Forneça P: ");
scanf("%d",&p);
// aqui eu faria uma critica para m =< 40 e m =< 70
//
mmax = m;
nmax = n;
pmax = p;
int a[mmax][nmax];
int b[nmax][pmax];
int c[mmax][pmax];
// inicializando o gerador de numeros aleatorios
srand(time(NULL));
// Preenchendo a matriz A com numeros aleatorios
for (i=0;i<mmax;i++) {
for (j=0;j<nmax;j++) {
a[i][j] = (rand()%10)+1;
}
}
printf(" Matriz A: \n");
// Imprimindo elementos matriz A
for (i=0;i<mmax;i++) {
for (j=0;j<nmax;j++) {
printf(" %d ",a[i][j]);
}
// Pula de linha na tela
printf("\n");
}
// Preenchendo a matriz B com numeros aleatorios
for (i=0;i<nmax;i++) {
for (j=0;j<pmax;j++) {
b[i][j] = (rand()%10)+1;
}
}
printf(" Matriz B: \n");
// Imprimindo elementos matriz B
for (i=0;i<nmax;i++) {
for (j=0;j<pmax;j++) {
printf(" %d ",b[i][j]);
}
// Pula de linha na tela
printf("\n");
}
// Realiza a multiplicacao das matrizes (Preenche C)
// Esta é a parte mais importante do programa
for (i=0;i<mmax;i++) {
for (j=0;j<pmax;j++) {
soma = 0;
// Este for realiza a multiplicação
for (k=0;k<nmax;k++) {
soma += a[i][k]*b[k][j];
}
c[i][j] = soma;
}
}
printf(" Matriz C: \n");
// Imprimindo elementos matriz C
for (i=0;i<mmax;i++) {
for (j=0;j<pmax;j++) {
printf(" %d ",c[i][j]);
}
// pula de linha
printf("\n");
}
system("PAUSE");
return 0;
}
hugoaguiar31- Mensagens : 4
Data de inscrição : 19/05/2011
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|