Lista de Matrizes (Exercicio 8 )

Ir em baixo

Lista de Matrizes (Exercicio 8 )

Mensagem por hugoaguiar31 em Seg Jun 13, 2011 9:40 am


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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum