You are on page 1of 6

#include <stdio.

h>
#include <stdlib.h>
void plusmat();
void scalarmat();
void multiplemat();
int main()
{
int done1 = 0;
do
{
//----------------------------------------------------------------------
// Select mode
int mode;
printf("Please Select Mode, A+B>>1, axA>>2, AxB>>3, Exit>>0 :: ");
scanf("%d" ,&mode);

if (((mode != 1) && (mode != 2)) && ((mode != 3) && (mode != 0)))


{
printf("\nselect mode error, please try again\n\n");
continue;
}
else if(mode == 0)
{
printf("\nexit program");
return 0;
}
else
{done1 = 1;}

}while(!done1);

if(mode == 1)
{plusmat();}
else if(mode == 2)
scalarmat();
else if(mode == 3)
{multiplemat();}

void plusmat()
{
int done = 0, k = 0;

do
{
if(k == 1)
{
int done2 = 0;
do
{
//-----------------------------------------------------------------
-----
// Select mode
int mode;
printf("Please Select Mode, A+B>>1, axA>>2, AxB>>3, Exit>>0 :: ");
scanf("%d" ,&mode);
if (((mode != 1) && (mode != 2)) && ((mode != 3) && (mode != 0)))
{
printf("\nselect mode error, please try again\n\n");
continue;
}
else if(mode == 0)
{
printf("\nexit program");
return 0;
}
else
{done2 = 1;}

}while(!done2);

if(mode == 1)
{plusmat();}
else if(mode == 2)
scalarmat();
else if(mode == 3)
{multiplemat();}
}

int a1, b1, a2, b2;


printf("Please Input Dimension of Matrix A (mxn) : ");
scanf("%dx%d" , &a1, &a2);
printf("Please Input Dimension of Matrix B (mxn) : ");
scanf("%dx%d" , &b1, &b2);

//----------------------------------------------------------------------
// Check dimension
if((a1 == b1) && (a2 == b2))
{
break;
}
else if(a1 != b1 || a2 != b2)
{
printf("\ndimension fail, please try again\n\n");
k = 1;
continue;
}
}while(!done);

//----------------------------------------------------------------------
// output
int A[a1][a2];
int B[b1][b2];

//input data to matrix


for(int i = 0; i < a1; i++)
{
for(int j = 0; i < a2; i++)
{
printf("input A(%d,%d) : " , i+1, j+1);
scanf("%d" ,&A[i][j]);
}
}

for(int i = 0; i < b1; i++)


{
for(int j = 0; i < b2; i++)
{
printf("input B(%d,%d) : " , i+1, j+1);
scanf("%d" ,&B[i][j]);
}
}

//calucated
int result[a1][a2];
for(int i = 0; i < a1; i++) {
for(int j = 0; i < a2; i++) {
result[i][j] = A[i][j] + B[i][j];
}
}

// output
printf("\n===== result =====\n");
for(int i = 0; i < a1; i++) {
for(int j = 0; i < a2; i++) {
printf("%5d ", result[i][j]);
}
printf("\n");
}
printf("\n");

void scalarmat()
{
int a1, a2 ,scl;
//----------------------------------------------------------------------
// input dimension of A/B
printf("Please Input Dimension of Matrix A (mxn) : ");
scanf("%dx%d" , &a1, &a2);
printf("Please Input Scalar of a : ");
scanf("%d" , &scl);

//----------------------------------------------------------------------
// output
int A[a1][a2];

//input data to matrix


for(int i = 0; i < a1; i++)
{
for(int j = 0; i < a2; i++)
{
printf("input A(%d,%d) : " , i+1, j+1);
scanf("%d" ,&A[i][j]);
}
}

//calucate
int result[a1][a2];
for(int i = 0; i < a1; i++)
{
for(int j = 0; i < a2; i++)
{
result[i][j] = A[i][j]*scl ;
}
}

printf("\n===== result =====\n");


for(int i = 0; i < a1; i++)
{
for(int j = 0; i < a2; i++)
{
printf("%5d ", result[i][j]);
}
printf("\n");
}
printf("\n");

void multiplemat()
{
int done = 0, k = 0;

do
{
if(k == 1)
{
int done2 = 0;
do
{
//-----------------------------------------------------------------
-----
// Select mode
int mode;
printf("Please Select Mode, A+B>>1, axA>>2, AxB>>3, Exit>>0 :: ");
scanf("%d" ,&mode);

if (((mode != 1) && (mode != 2)) && ((mode != 3) && (mode != 0)))


{
printf("\nselect mode error, please try again\n\n");
continue;
}
else if(mode == 0)
{
printf("\nexit program");
return 0;
}
else
{done2 = 1;}

}while(!done2);

if(mode == 1)
{plusmat();}
else if(mode == 2)
scalarmat();
else if(mode == 3)
{multiplemat();}
}

int a1, b1, a2, b2;


printf("Please Input Dimension of Matrix A (mxn) : ");
scanf("%dx%d" , &a1, &a2);
printf("Please Input Dimension of Matrix B (mxn) : ");
scanf("%dx%d" , &b1, &b2);

//----------------------------------------------------------------------
// Check dimension
if(a2 == b1)
{
break;
}
else if(a2 != b1)
{
printf("\ndimension fail, please try again\n\n");
k = 1;
continue;
}
}while(!done);

//----------------------------------------------------------------------
// output
int A[a1][a2];
int B[b1][b2];

//input data to matrix


for(int i = 0; i < a1; i++)
{
for(int j = 0; i < a2; i++)
{
printf("input A(%d,%d) : " , i+1, j+1);
scanf("%d" ,&A[i][j]);
}
}

for(int i = 0; i < b1; i++)


{
for(int j = 0; i < b2; i++)
{
printf("input B(%d,%d) : " , i+1, j+1);
scanf("%d" ,&B[i][j]);
}
}

//calucated
int result[a1][a2];
for(int i = 0; i < a1; i++) {
for(int j = 0; i < a2; i++) {
result[i][j] = A[i][j] * B[i][j];
}
}

// output
printf("\n===== result =====\n");
for(int i = 0; i < a1; i++) {
for(int j = 0; i < a2; i++) {
printf("%5d ", result[i][j]);
}
printf("\n");
}
printf("\n");

You might also like