Any "Java-ians" here?
[Challenge]
Difficulty Level: Little higher than medium
WAP in Java to perform matric subtraction [switch-based Question]
Instructions:-
• Accept matric 'A'
• Accept matric 'B'
• Ask the user if he/she wants A-B or B-A
• Display the output according to user's choice.
• Assume that rows and columns of given matric is same.
Thanks!!
Useful Tip: You can also use A=B to put all elements of array B in array A
Answers
Solution:
The given code is written in Java.
import java.util.*;
public class MatrixSubtraction{
public static void main(String s[]){
Scanner sc=new Scanner(System.in);
int rows,cols,i,j,ch;
System.out.print("How many rows: ");
rows=sc.nextInt();
System.out.print("How many cols: ");
cols=sc.nextInt();
int a[][]=new int[rows][cols];
int b[][]=new int[rows][cols];
int c[][]=new int[rows][cols];
System.out.println("\nEnter elements in matrix A[][]:");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
System.out.printf("A[%d][%d] >> ",i,j);
a[i][j]=sc.nextInt();
}
}
System.out.println("\nEnter elements in matrix B[][]: ");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
System.out.printf("B[%d][%d] >> ",i,j);
b[i][j]=sc.nextInt();
}
}
System.out.println("1. A-B\n2. B-A\n");
System.out.print("Enter your choice: ");
ch=sc.nextInt();
if(ch==1|| ch==2){
ch=(ch==1)?1:-1;
for(i=0;i<rows;i++){
for(j=0;j<cols;j++)
c[i][j]=ch*(a[i][j]-b[i][j]);
}
System.out.println("\nMatrix A[][]:");
displayMatrix(a);
System.out.println("\nMatrix B[][]:");
displayMatrix(b);
System.out.println("\nMatrix C[][]:");
displayMatrix(c);
}
else
System.out.println("Invalid Input.");
}
static void displayMatrix(int a[][]){
for(int x[]:a){
for(int y:x)
System.out.print(y+" ");
System.out.println();
}
}
}
Logic:
- Logic is very simple. Ask the user to enter the matrix element, calculate result according to the choice given. For invalid choice, display an appropriate message.
See the attachment for output.
![](https://hi-static.z-dn.net/files/d42/a534f5138b2982dc8d347ea524ac20b5.jpg)
![](https://hi-static.z-dn.net/files/dd0/9b6d00af223e10897bfaa7edf0227122.png)
Answer:
Program:-
import java.util.*;
public class Main
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
int a[][]=new int[2][2];
int b[][]=new int[2][2];
int c[][]=new int[2][2];
System.out.println("Enter the elements of 1st matrix");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
a[i][j]=in.nextInt();
}
}
System.out.println("The first matrix:");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
System.out.print(a[i][j]+ " ");
}
System.out.println();
}
System.out.println("Enter the elements of matrix 2:");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
b[i][j]=in.nextInt();
}
}
System.out.println("The second matrix:");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
System.out.print(b[i][j]+" ");
}
System.out.println();
}
int ch;
System.out.println("Enter 1 for A-B");
System.out.println("Enter 2 for B-A");
System.out.println("Enter your choice");
ch=in.nextInt();
switch(ch)
{
case 1:
System.out.println("The given choice is A-B");
System.out.println("The new matrix:");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
c[i][j]=a[i][j]-b[i][j];
System.out.print(c[i][j]+" ");
}
System.out.println();
}
break;
case 2:
System.out.println("The given form is B-A");
System.out.println("The new matrix:");
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
c[i][j]=b[i][j]-a[i][j];
System.out.print(c[i][j]+" ");
}
System.out.println();
}
break;
default:
System.out.println("Invalid Choice");
}
}
}
![](https://hi-static.z-dn.net/files/db9/acfb9b488bc3d9bb6c111333a10a3b5b.jpg)
![](https://hi-static.z-dn.net/files/d17/b4d17c93fa13b71e4195f8d5ff5d9a7a.jpg)