Solução em C do Problema 3

#include <stdio.h>
#define MAX 100

int main() {
  int m, n,         /* dimensoes da matriz A */
      nb, p,        /* dimensoes da matriz B */
      i, j, k;
  float A[MAX][MAX], B[MAX][MAX], C[MAX][MAX];
  
  printf("Digite as dimensoes (mXn) da matriz A: ");
  scanf("%d", &m);
  scanf("%d", &n);
  printf("Digite a matriz A:\n");
  for (i = 0; i < m; i++)
    for (j = 0; j < n; j++)
      scanf("%f", &A[i][j]);

  printf("Digite as dimensoes (nXp) da matriz B: ");
  scanf("%d", &nb);
  scanf("%d", &p);
  if (nb != n)
    printf("Nao existe o produto da matriz A por B!!");
  else {
    printf("Digite a matriz B:\n");
    for (i = 0; i < n; i++)
      for (j = 0; j < p; j++)
	scanf("%f", &B[i][j]);

    /* calculo do produto */
    for (i = 0; i < m; i++)
      for (j = 0; j < p; j++){
	C[i][j] = 0;
        for (k = 0; k < n; k++) 
           C[i][j] = C[i][j] + A[i][k] * B[k][j];
      }

    /* impressao do resultado */
    printf("Matriz A X B: \n");
    for (i = 0; i < m; i++) {
      for (j = 0; j < p; j++)
	printf("%f ", C[i][j]);
      printf("\n");
    }
  }

  return 0;
}


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br