Operation on Matrix

 Perform Following operations on matrices
 1. Addition of two matrices
 2. Subtraction of two matrices
 3. Multiplication of two matrices
 4. Row sum
 5. Column sum
 6. Diagonal sum



#include<stdio.h>
void main()
{
int i,j,k,m1,m2,n1,n2,a[10][10],b[10][10],c[10][10],ch,sum[10],dsum=0;
do
    {
        printf("\nOperation On matrices");
        printf("\n*********************");
        printf("\n1.Matrix Addition");
        printf("\n2.Matrix Subtraction");
        printf("\n3.Matrix Multiplication");
        printf("\n4.Row Sum");
        printf("\n5.Column Sum");
        printf("\n6.Diagonal Sum");
        printf("\n7.Exit");
        printf("\nEnter your Choice");
        scanf("%d",&ch);
        switch(ch)
        {
        case 1:
        case 2:
        case 3:
               {
                printf("Enter the row and column  of Matrix A\n");
                scanf("%d %d",&m1,&n1);
                printf("Enter the row and column of Matrix B\n");
                scanf("%d%d",&m2,&n2);
                if(m1==m2&& n1==n2);
                else if(m1==n2);
                else
                {
                    printf("\n Arithmetic operation not possible, Rows and Columns are not Equal");
                    break;
                }
                    printf("Enter the Matrix A\n");
                    for(i=0;i<m1;i++)
                    {
                        for(j=0;j<n1;j++)
                            scanf("%d",&a[i][j]);
                    }


                    printf("\nEnter the Matrix B\n");
                    for(i=0;i<m2;i++)
                    {
                        for(j=0;j<n2;j++)
                            scanf("%d",&b[i][j]);
                    }
                    switch(ch)
                    {
                    case 1:
                            for(i=0;i<m1;i++)
                                for(j=0;j<n2;j++)
                                    c[i][j]=a[i][j]+b[i][j];
                                    break;
                    case 2:
                            for(i=0;i<m1;i++)
                                for(j=0;j<n2;j++)
                                    c[i][j]=a[i][j]-b[i][j];
                                    break;
                    case 3:
                            for(i=0;i<m1;i++)
                                for(j=0;j<n2;j++)
                                {
                                    c[i][j]=0;
                                    for(k=0;k<m2;k++)
                                        c[i][j]=c[i][j]+a[i][k]*b[k][j];
                                }

                    }
                    if(ch==1)
                    printf("\n Addition  of Matrix \n");
                    else if(ch==2)
                        printf("\nSubtraction of matrix\n");
                    else
                        printf("\nMultiplication of Matrix\n");
                        for(i=0;i<m1;i++)
                            {
                            for(j=0;j<n2;j++)
                                printf("%d\t",c[i][j]);
                            printf("\n");
                            }
                break;
                }
                    case 4:
                        printf("Enter the Row and column\n");
                        scanf("%d %d",&m1,&n1);
                        printf("Enter the Matrix \n");
                            for(i=0;i<m1;i++)
                            {
                                sum[i]=0;
                                for(j=0;j<n1;j++)
                                {
                                    scanf("%d",&a[i][j]);
                                    sum[i]+=a[i][j];
                                }
                            }
                            for(j=0;j<m1;j++)
                                printf("\n%d  row sum:%d",j+1,sum[j]);
                         break;
                    case 5:
                        printf("Enter the Row and column\n");
                        scanf("%d %d",&m1,&n1);
                        printf("Enter the Matrix \n");
                            for(i=0;i<m1;i++)
                                for(j=0;j<n1;j++)
                                    scanf("%d",&a[i][j]);
                            for(i=0;i<m1;i++)
                            {
                                sum[i]=0;
                                for(j=0;j<n1;j++)
                                    sum[i]+=a[j][i];
                            }
                            for(j=0;j<m1;j++)
                                    printf("\n%d  row sum:%d",j,sum[j]);
                        break;
                    case 6:
                        printf("Enter the Row and column\n");
                        scanf("%d %d",&m1,&n1);
                        printf("Enter the Matrix \n");
                            for(i=0;i<m1;i++)
                            {
                                for(j=0;j<n1;j++)
                                {
                                    scanf("%d",&a[i][j]);
                                    if(i==j)
                                      dsum+=a[i][j];
                                }
                            }
                            printf("\nSum of Diagonal:%d",dsum);
                            break;
                    case 7:
                        exit(0);
                        break;
                    default:
                        printf("\nWrong Choice....Try again...");
                }
        }while(ch!=7);

}

No comments:

Post a Comment

Thank you for using this blog.