Hi I need to write a program that adds two 10 X 10 matrix. In matrix A the 1st f
ID: 3623642 • Letter: H
Question
Hi I need to write a program that adds two 10 X 10 matrix. In matrix A the 1st first row are all 1's, the second row's all 2's and so on. In matrix B, the first rows are 1,2,3,4,...9,10. The second row is the same until it reaches the full 10 x 10 matrix. Finally, the last matrix adds both matrix A and B. I realize these are simple for loops but I have never worked with C programming. I have placed a copy of my code below (the results are not what I wanted), any help is appricated. Thanks!#include <mpi.h> /* PROVIDES THE BASIC MPI DEFINITION AND TYPES */
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv)
{
int myid;
int numprocs, n,i,j,a[11][11],b[11][11],c[11][11];
MPI_Status stat;
MPI_Init(&argc, &argv); /*START MPI */
MPI_Comm_rank(MPI_COMM_WORLD, &myid); /*DETERMINE RANK OF THIS PROCESSOR*/
MPI_Comm_size(MPI_COMM_WORLD, &numprocs); /*DETERMINE TOTAL NUMBER OF PROCESSORS*/
n = 10;
printf("Hello world: processor %d of %d ", myid,numprocs);
/*Matrix A*/
printf("Matrix A: ");
for (i = 1; i < n+1; i++)
{
for (j = 1; j < n+1; j++)
{
a[i][j] = 1;
printf("%d %d ",i,j);
}
printf(" ");
}
/*Matrix B*/
printf(" Matrix B: ");
for (i = 1; i < n+1; i++)
{
for (j = 1; j < n+1; j++)
{
b[i][j] = 1;
printf("%d %d ",i,j);
}
}
/*Sum of two matrix*/
printf(" Sum of Matrix: ");
for (i = 1; i < n+1; i++)
{
for (j = 1; j < n+1; j++)
{
c[i][j] = a[i][j]+b[i][j];
/*printf("%d , ",i,j);
printf(" ");*/
}
}
MPI_Finalize(); /* EXIT MPI */
}
Explanation / Answer
de :
#include<iostream.h>
#include<conio.h>
#include<process.h>
int a[10][10],b[10][10],x[10][10];
void add()
{
int r,c,i,j,n;
cout<<"ENTER THE ORDER OF MATRIX : ";
cin>>n;
r=n;
c=n;
cout<<"ENTER THE ELEMENTS FOR MATRIX 'A' :"<<endl;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cin>>a[i][j];
}
}
cout<<"ENTER THE ELEMENTS FOR MATRIX 'B' : "<<endl;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cin>>b[i][j];
}
}
clrscr();
cout<<"MATRIX 'A' IS "<<endl;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"MATRIX 'B' IS "<<endl;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
//.....................ADDITION OF MATRIX........................
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
x[i][j]=a[i][j]+b[i][j];
}
}
cout<<"THE SUM OF TWO ENTERED MATRIX IS "<<endl;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cout<<x[i][j]<<" ";
}
cout<<endl;
}
}
void multiply()
{
int r1,c1,r2,c2,i,j,k;
clrscr();
cout<<"ENTER THE NO.OF ROWS OF MATRIX (A) : ";
cin>>r1;
cout<<"ENTER THE NO.OF COLOUMS OF MATRIX (A) :";
cin>>c1;
cout<<"ENTER THE ELEMENTS FOR MATRIX (A) :"<<endl;
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
cin>>a[i][j];
}
}
cout<<"ENTER THE NO.OF ROWS OF MATRIX (B) : ";
cin>>r2;
cout<<"ENTER THE NO.OF COLOUMS OF MATRIX (B) : ";
cin>>c2;
cout<<"ENTER THE ELEMENTS FOR MATRIX (B) :"<<endl;
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
cin>>b[i][j];
}
}
clrscr();
cout<<"MATRIX 'A' IS "<<endl;
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"MATRIX 'B' IS "<<endl;
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
if(c1!=r2)
{
cout<<"MULTIPLICATION IS NOT POSSIBLE ";
}
else
{
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
x[i][j]=0;
for(k=0;k<c1;k++)
{
x[i][j]=x[i][j]+(a[i][k]*b[k][j]);
}
}
}
}
cout<<"MULTIPLICATION OF TWO MATRIX IS "<<endl;
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
cout<<x[i][j]<<" ";
}
cout<<endl;
}
}
void main()
{
clrscr();
while(1)
{
int ch;
cout<<"
";
cout<<"...ENTER YOUR CHOICE........"<<endl;
cout<<"1. ADDITION OF TWO MATRIX "<<endl;
cout<<"2. MULTIPLICATION OF TWO MATRIX "<<endl;
cout<<"3. EXIT "<<endl;
cin>>ch;
switch(ch)
{
case 1:
add();
break;
case 2:
multiply();
break;
case 3:
exit(0);
default :
cout<<"INVALID CHOICE !! ENTER CORRECT CHOICE";
}
//getch();
}
please, rate! thank you.