Jump to content


Photo

Multiplicação De Matrizes, Em C, Dúvida


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Leonardo Akatsuki

Leonardo Akatsuki

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado
  • Localidade:brasil

Posted 29/11/2011, 22:20

Pessoal preciso fazer um programa em linguagem C que o usuário possa entrar com duas matrizes onde tenha um menu de opções (Switch Case) e possa escolher:
"Escolha a opção desejada:"
1. Somar as matrizes A e B
2. Multiplicar A por B
3. Multiplicar a matriz A por uma constante qualquer
4. Fazer a matriz transposta de A e B
5. Verificar se as matrizes A e B são simétricas
6. Fazer as matrizes opostas de A e B
7.Sair

Não foi dada a matéria de forma parcial apenas, e é um trabalho que tiver de correr atras por mim mesmo na net em cima da hora, já consegui fazer os passos 1 (soma) e 2 (multiplicação), estou tendo muita dificuldade no resto e se pudessem me ajudar ficaria grato!
Já fiz até aqui:
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
#define max 50

int main ()
{
int menu;
{
printf ("\n\nEscolha a opcao desejada:\n\n");
printf ("\t(1)Somar as matrizes A e B\n");
printf ("\t(2)Multiplicar A por B\n");
printf ("\t(3)Multiplicar a matriz A por uma constante qualquer\n");
printf ("\t(4)Fazer a matriz transposta de A e B\n");
printf ("\t(5)Verificar se as matrizes A e B sao simetricas\n");
printf ("\t(6)Fazer as matrizes opostas de A e B\n");
printf ("\t(7)Sair\n");
scanf("%d", &menu);
}
while ((menu<1)||(menu>7));
switch (menu)
{
case 1:
int i,j,x,y,co;
float a[max][max], b[max][max], c [max][max] ;
printf("Entre com o numero de linhas das matrizes A e B.");
scanf("%d",&x);
printf("\nEntre com o numero de colunas das matrizes A e B.");
scanf("%d",&y);
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("\nEntre com a matriz A.");
scanf("%f",&a[i][j]);
printf("\nEntre com a matriz B.");
scanf("%f",&b[i][j]);
}
}
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("\n\n A soma das matrizes A e B sao %2.2f\n", a[i][j] + b[i][j]);
}}
break;
case 2:

int ii,jj,kk,ll,cc;
float m[10][10];
float m1[10][10];
float maux[10][10];
printf("digite a quntidade de linhas das matrizes \n");
scanf("%i",&ll);
printf("\n\n");
printf("Digite a quantidade de colunas das matrizes\n");
scanf("%i",&cc);
printf("\n\n");
printf("Digite os elementos da matriz 1");
printf("\n\n");
for(ii=0;ii<ll;ii++)
{
for(jj=0;jj<cc;jj++)
{
printf("elemento %i%i -->",ii,jj);
scanf("%f",&m[ii][jj]);
}
}
printf("\n\n");
printf("Digite os elementos da matriz 2");
printf("\n\n");
for(ii=0;ii<ll;ii++)
{
for(jj=0;jj<cc;jj++)
{
printf("elemento %i%i -->",ii,jj);
scanf("%f",&m1[ii][jj]);
maux[ii][jj]=0;
}
}
for(ii=0;ii<ll;ii++)
{
for(jj=0;jj<cc;jj++)
{
for(kk=0;kk<ll;kk++)
{
maux[ii][jj]=maux[ii][jj]+(m[ii][kk]*m1[kk][jj]);
}
}
}
printf("\n\n");
printf("As matrizes multiplicadas geram a matriz abaixo");
printf("\n\n");
for(ii=0;ii<ll;ii++)
{
printf("\n");
for(jj=0;jj<cc;jj++)
{
printf("% 6.2f",maux[ii][jj]);
}
}
printf("\n\n");


              
break;
case 3:
printf ("\t\tConstante\n");

break;
case 4:
printf ("\t\tTransposta\n");
break;
case 5:
break;
case 6:
printf ("\t\tOposta\n");
break;
case 7:
exit(1);
break;
}
system ("pause");
}





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq