حاصل ضرب دو ماتریس ...
پنج شنبه 91/9/30
1:50 صبح
نظر
حاصل ضرب دو ماتریس ...
این برنامه از 4 تا تایع تشکیل شده :
1. تابعی که ورودی رو می خونه
2. تابعی که ضرب را انجام میده
3.تابعی که خروجی را چاپ می کنه
4. و تابع مین ...
کد:
/*A Program to Multiply Two Matrices. */
#include <stdio.h>
#define MAXROWS 100
#define MAXCOLS 100
void Read(int a[][MAXCOLS],int m,int n);
void Compute(int a[][MAXCOLS],int b[][MAXCOLS],int c[][MAXCOLS],int m,int n,int p);
void Print(int c[][MAXCOLS],int m,int p);
void main()
{
int nrows, ncols, mrows, mcols;
int a[MAXROWS][MAXCOLS],b[MAXROWS][MAXCOLS],c[MAXROWS][MAXCOLS];
printf("Enter Number Of Rows In Matric A: ");
scanf("%d",&nrows);
printf("Enter Number Of Rows In Matric A: ");
scanf("%d",&ncols);
printf("Enter Number Of Rows In Matric B: ");
scanf("%d",&mrows);
printf("Enter Number Of Rows In Matric B: ");
scanf("%d",&mcols);
if (ncols != mrows)
{
printf("\n\t\tSorry! You Can"t Multiply Matric A And B.");
getch();
exit(0);
}
printf("\n\t\t\tFirst Matric\n");
Read(a,nrows,ncols);
printf("\n\t\t\tSecond Matric\n");
Read(b,mrows,mcols);
Compute(a,b,c,nrows,ncols,mcols);
printf("Product Of The Matrices Is:");
Print(c,nrows,mcols);
getch();
}
void Read(int a[][MAXCOLS],int m,int n)
{
int row, col;
for (row=0;row<m;row++)
{
printf("Enter Data For Row No.%d:\n",row+1);
for (col=0;col<n;col++)
scanf("%d",&a[row][col]);
}
return;
}
void Compute(int a[][MAXCOLS],int b[][MAXCOLS],int c[][MAXCOLS],int m,int n,int p)
{
int i, j, k, sum=0;
for (i=0;i<m;i++)
{
for (j=0;j<p;j++)
{
for (k=0;k<n;k++)
{
sum=sum+(a[i][k]*b[k][j]);
c[i][j]=sum;
sum=0;
}
}
}
return;
}
void Print(int c[][MAXCOLS],int m,int p)
{
int row, col;
printf("\n");
for (row=0;row<m;row++)
{
for (col=0;col<p;col++)
{
printf("%5d",c[row][col]);
printf("\t");
}
printf("\n");
}
return;
}