You are on page 1of 2

AII I – Laborator nr.

8-6

/*

Exemplu de folosire a matricilor alocate static.


Se declara matrice cu 10x10 elemente. La executia programului se precizeaza cate dintre
acestea vor fi folosite.

*/

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

// prototipurile functiilor
void citeste(float [][10],int,int ); //citirea elementelor unei matrice de la tastatura
void afiseaza(float[][10],int,int ); //afisarea elemntelor unei matrice
void produs(float[][10],float[][10],float[][10],int,int,int); //calculul produsului a 2 matrice

void main(void)
{
int m,n,p;
float a[10][10], b[10][10],c[10][10];

printf("\nm="); scanf("%d",&m);
printf("\nn="); scanf("%d",&n);
printf("\np="); scanf("%d",&p);
printf("Introdu elementele primei matrici:\n");
citeste(a,m,n);
printf("Introdu elementele celei de a doua matrici:\n");
citeste(b,n,p);
produs(a,b,c,m,n,p);
afiseaza(a,m,n);
afiseaza(b,n,p);
afiseaza(c,m,p);
getch();
}

void citeste (float m[10][10],int r,int s)


{
int i, j;

for (i=0;i<r;i++)
for(j=0;j<s;j++)
{
printf("elem[%d][%d]=",i,j);
scanf("%f",&m[i][j]);
}
}

void afiseaza(float m[10][10], int r, int s)


{
int i,j;
printf("\n");

Pag. 1/2
AII I – Laborator nr. 8-6
for (i=0;i<r;i++)
{
for(j=0;j<s;j++)
printf("%8.2f ",m[i][j]);
printf("\n");
}
}

void produs(float m1[10][10],float m2[10][10],float m3[10][10],int m,int n,int p)


{
int i,j,k;
for (i=0;i<m;i++)
for(j=0;j<p;j++)
for(k=0,m3[i][j]=0;k<n;k++)
m3[i][j]+=m1[i][k]*m2[k][j];
}

Pag. 2/2

You might also like