Acasa Tehnologie Adunarea si inmultirea unei matrice

Adunarea si inmultirea unei matrice

by Dragos Schiopu

>

#include <stdio.h>
#include <conio.h>


void citire(int m, int n, int a[20][20],char c)
{
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
printf("%c[%i][%i]=",c,i,j);
scanf("%d",&a[i][j]);
}
}


void afisare(int m, int n, int a[20][20])
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
printf(" %d ",a[i][j]);
printf("n");
}
}

main()
{
int m,n,p,q,ok;
char raspuns;
int a[20][20],b[20][20],c[20][20],d[20][20];

printf("m=");
scanf("%d",&m);
printf("n=");
scanf("%d",&n);
printf("p=");
scanf("%d",&p);
printf("q=");
scanf("%d",&q);


printf("nCitire matrice An");
citire(m,n,a,'A');
printf("Afisare matrice An");
afisare(m,n,a);

printf("nCitire matrice Bn");
citire(p,q,b,'B');
printf("Afisare matrice Bn");
afisare(m,n,b);
printf("nApasa orice tasta pentru a continua!n");
getch();
clrscr();
do
{
printf("Apasa 0 pentru iesiren");
printf("Apasa 1 ptr adunaren");
printf("Apasa 2 ptr inmultiren");
printf("Apasa 3 ptr suma elem prime de pe diagonala principalan");
raspuns=getch();


if(raspuns=='1')
{
if((m==p)&&(n==q))
{
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
c[i][j]=a[i][j]+b[i][j];
printf("Afisare matrice suman");
afisare(m,n,c);
printf("nApasa orice tasta pentru a continua!n");
getch();
clrscr();
}
else printf("nNu pot face adunarea!n");
}
else

if(raspuns=='2')
{
if(n==p)
{
for(int i=1;i<=m;i++)
for(int j=1;j<=q;j++)
{
d[i][j]=0;
for(int k=1;k<=n;k++)
d[i][j]+=a[i][k]*b[k][j];

}
printf("Afisare matrice produsn");
afisare(m,q,d);
printf("nApasa orice tasta pentru a continua!n");
getch();
clrscr();
}
else printf("Nu pot face inmultirea!");
}

}
while(raspuns!='0');
return 0;
}

s-ar putea sa-ti placa

0 comentariu

sorin 07-11-2012 - 22:46

-2 3 1 1 -1 2
A= 4 -1 1 B=3 2 1
2 1 3 0 -1 4

A+B=
A-B=
2xA+3xB=
AxB=

sorin 07-11-2012 - 22:48

Astept daca poate cineva sa ma