Design a class Colsum to check if the sum of elements in each corresponding column of two matrices is equal or not. Assume that the two matrices have the same dimensions.
Example:
INPUT:
2 3 1
7 5 6
1 4 2
MATRIX A
7 4 2
1 3 1
2 5 6
MATRIX B
OUTPUT: Sum of corresponding columns is equal.
The details of the members of the class are given below:
Class name: Colsum
Data members/instance variables:
mat[][]: to store the integer array elements
m: to store the number of rows
n: to store the number of columns
Member functions/methods:
Colsum(int mm, int nn): parameterized constructor to initialize the data members m = mm and n = nn
void readArray(): to accept the elements into the array
boolean check(Colsum A, Colsum B): to check if the sum of elements in each column of the objects A and B is equal and return true, otherwise return false
void print(): to display the array elements
Specify the class Colsum giving details of the constructor, void readArray(), boolean check(Colsum, Colsum), and void print(). Define the main() function to create objects and call the functions accordingly to enable the task.
Solution:
import java.util.Scanner;
class Colsum{
int mat[][],m,n;
Colsum(int mm,int nn){
m = mm;
n = nn;
}
void readArray(){
System.out.println("Enter the values into the matrix:");
Scanner sc=new Scanner(System.in);
mat = new int[m][n];
for(int r=0;r<m;r++) //rows
{
for(int c=0;c<n;c++) //columns
{
mat[r][c] = sc.nextInt();
}
}
}
boolean check(Colsum A,Colsum B){
boolean flag=false;
for(int i=0;i<m;i++)
{
int s1=0;
int s2=0;
for(int j=0;j<n;j++)
{
s1+=A.mat[j][i]; //column sum
s2+=B.mat[j][i];
}
if(s1==s2){
flag=true;
}
else{
flag=false;
break;
}
}
return flag;
}
void print(){
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
System.out.print(mat[i][j]+" ");
}
System.out.println();
}
}
public static void main(){
Scanner sc=new Scanner(System.in);
System.out.println("Enter the number of rows and columns:");
int r = sc.nextInt();
int c = sc.nextInt();
Colsum A = new Colsum(r,c);
A.readArray();
Colsum B = new Colsum(r,c);
B.readArray();
System.out.println("The first array is:");
A.print();
System.out.println("The second array is:");
B.print();
if(A.check(A,B))
System.out.println("Sum of the corresponding columns is equal");
else
System.out.println("Sum of the corresponding columns is not equal");
}
}