Hey all!
So in the code I have posted below, the user can assign upto 4 matrices A,B,C or D. Now I want to do amtrices addition between them. I am using a switch statement but I just don't know what to do. I need some help thinking of a way.
Code:
#include<stdio.h>
#include <stdlib.h>
void matrix_display(int ****matrix, int row_count, int column_count);
int main (void)
{
int row_size1,col_size1,row_size2,col_size2,flag =1;
int ****A[4];
int i = 0, j = 0;
char a,c;
do
{
printf("\ncmd> ");
c = getchar();
if(c == 'A')
{
scanf("%d %d",&row_size1,&col_size1);
A[0]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[0][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
{
scanf("%d",&A[0][i][j]);
// if (A[i][j] == 99) // 'x' is character variable i declared
// break;
}
}
matrix_display(A[0], row_size1, col_size1);
}
if(c == 'B')
{
scanf("%d %d",&row_size1,&col_size1);
A[1]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[1][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
{
scanf("%d",&A[1][i][j]);
// if (A[i][j] == 99) // 'x' is character variable i declared
// break;
}
}
matrix_display(A[1], row_size1, col_size1);
}
if(c == 'C')
{
scanf("%d %d",&row_size1,&col_size1);
A[2]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[2][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
{
scanf("%d",&A[2][i][j]);
// if (A[i][j] == 99) // 'x' is character variable i declared
// break;
}
}
matrix_display(A[2], row_size1, col_size1);
}
if(c == 'D')
{
scanf("%d %d",&row_size1,&col_size1);
A[3]= malloc(row_size1*sizeof(int*));
for(i=0;i<row_size1;i++)
{
A[3][i]=malloc(col_size1*sizeof(int));
}
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
{
scanf("%d",&A[3][i][j]);
// if (A[i][j] == 99) // 'x' is character variable i declared
// break;
}
}
matrix_display(A[3], row_size1, col_size1);
}
if ( c == '+')
{
scanf("%c %c", &ptr1, ptr2);
switch(ptr1);
case 'A':
ptr1=A[0];
break;
case 'B':
ptr1=A[1];
break;
case 'C':
ptr1=A[2];
break;
case 'D':
ptr1=A[3];
break;
switch(ptr2);
case 'A':
ptr2=A[0];
break;
case 'B':
ptr2=A[1];
break;
case 'C':
ptr2=A[2];
break;
case 'D':
ptr2=A[3];
break;
}
}
while(flag == 1);
//return 0;
}
void matrix_display(int ****A, int row_size1, int col_size1)
{
int i,j;
printf("The required matrix is\n");
for(i=0;i<row_size1;i++)
{
for(j=0;j<col_size1;j++)
printf("%d ",A[i][j]);
printf("\n");
}
for(i=0;i<row_size1;i++)
{
free(A[i]);
}
free(A);
}