Program 130:
Explanation:#include<stdio.h> main() { int i,j,k,rows_1,col_1,rows_2,col_2,sum=0,flag=1,x,count=0,flag2=1; printf("Enter number of rows and columns of matrix 1\n"); scanf("%d %d",&rows_1,&col_1); printf("Enter number of rows and columns of matrix 2\n"); scanf("%d %d",&rows_2,&col_2); int a1[100][100],a2[100][100],mul[100][100]; //int a1[rows_1][col_1],a2[rows_2][col_2],mul[rows_1][col_2]; do{ if(col_1==rows_2) { count++; if(count==1) { //Taking input for 1st matrix printf("Enter Matrix 1\n"); for(i=0;i<rows_1;i++) { for(j=0;j<col_1;j++) { scanf("%d",&a1[i][j]); } } } //Taking input for 2nd matrix printf("Enter Matrix 2\n"); for(i=0;i<rows_2;i++) { for(j=0;j<col_2;j++) { scanf("%d",&a2[i][j]); } } //multiplication of matrix for(i=0;i<rows_1;i++) { for(j=0;j<col_2;j++) { for(k=0;k<rows_2;k++) { sum+=a1[i][k]*a2[k][j]; } mul[i][j]=sum; sum=0; } } printf("Multiplication of above matrices is\n"); for(i=0;i<rows_1;i++) { for(j=0;j<col_2;j++) { printf("%d\t",mul[i][j]); } printf("\n"); } printf("Enter 1 to continue to multiply the above to another matrix else 0\n "); scanf("%d",&x); if(x==1) { flag=1; //clearing 1st matrix for(i=0;i<rows_1;i++) { for(j=0;j<col_1;j++) { a1[i][j]=0; } } //clearing 2nd matrix printf("Enter Matrix 2\n"); for(i=0;i<rows_2;i++) { for(j=0;j<col_2;j++) { a2[i][j]=0; } } for(i=0;i<rows_1;i++) { for(j=0;j<col_2;j++) { a1[i][j]=mul[i][j]; mul[i][j]=0; } } rows_1=rows_1; col_1=col_2; printf("Enter rows and column of 2nd matrix\n"); scanf("%d %d",&rows_2,&col_2); if(col_1!=rows_2) { printf("Final matrix after multiplication is\n"); for(i=0;i<rows_1;i++) { for(j=0;j<col_2;j++) { printf("%d\t",a1[i][j]); } printf("\n"); } flag2=0; } count++; } else { flag=0; } } else { printf("Not possible with the given rows and columns\n"); flag=0; } }while(flag); if(count>0&&flag2!=0) { printf("Final matrix after multiplication is\n"); for(i=0;i<rows_1;i++) { for(j=0;j<col_2;j++) { printf("%d\t",mul[i][j]); } printf("\n"); } } }
//Coming Soon...
Output:
After 1st run
After 3rd run(When rows and columns are not equal after 1st time or next multiplication in middle):
No comments:
Post a Comment