- C++ Programming Examples
- C++ Programming Examples
- C++: Hello World
- C++: Get Input
- C++: Print Integer
- C++: Add two numbers
- C++: Add, Sub, Multiply, Div
- C++: Add Digits
- C++: Find Average and Percentage
- C++: Find Arithmetic Mean
- C++: Sum of n Natural Numbers
- C++: Sum of n Numbers
- C++: Square's Area and Perimeter
- C++: Rectangle's Area and Perimeter
- C++: Triangle's Area and Perimeter
- C++: Area and Circumference
- C++: Find Simple Interest
- C++: Fahrenheit to Celsius
- C++: Celsius to Fahrenheit
- C++: Print Prime Numbers
- C++: Reverse a Number
- C++: Swap Two Numbers
- C++: Print Multiplication Table
- C++: Find Factorial of a Number
- C++: Find Factors of a Number
- C++: Find HCF and LCM
- C++: Create a Calculator
- C++: Count Digits in a Number
- C++: First and Last Digit Sum
- C++: Product of Number Digits
- C++: Sum of Squares of Digits
- C++: Interchange Digits of Number
- C++ if-else Programs
- C++: Check Even or Odd
- C++: Check Prime or Not
- C++: Check Alphabet or Not
- C++: Check Vowel or Not
- C++: Check Leap Year or Not
- C++: Check Reverse equals Original
- C++: Check Perfect Number
- C++: Check Palindrome or Not
- C++: Check Armstrong or Not
- C++: Divisibility Test
- C++: Find Labor Wage
- C++: Find Discounted Price
- C++: Find Shipping Charge
- C++: Find Telephone Bills
- C++: Calculate Student Grade
- C++: Largest of Two Numbers
- C++: Largest of Three Numbers
- C++ Number Conversion
- C++: Decimal to Binary
- C++: Decimal to Octal
- C++: Decimal to Hexadecimal
- C++: Binary to Decimal
- C++: Binary to Octal
- C++: Binary to Hexadecimal
- C++: Octal to Decimal
- C++: Octal to Binary
- C++: Octal to Hexadecimal
- C++: Hexadecimal to Decimal
- C++: Hexadecimal to Binary
- C++: Hexadecimal to Octal
- C++ Pattern Programs
- C++: Pattern Programs
- C++: Print Diamond Pattern
- C++: Print Floyd's Triangle
- C++: Print Pascal's Triangle
- C++ Array Programs
- C++: 1D Array Program
- C++: Linear Search
- C++: Binary Search
- C++: Largest Element in an Array
- C++: Smallest Element in an Array
- C++: Find Second Largest Element
- C++: Find Second Smallest Element
- C++: Sum of All Elements
- C++: Multiply All Elements
- C++: Element in Even Position
- C++: Element in Odd Position
- C++: Print Even Numbers in Array
- C++: Print Odd Numbers in Array
- C++: Count Even or Odd Numbers
- C++: Sum of Even or Odd Numbers
- C++: Count Positive, Negative, Zero
- C++: Reverse an Array
- C++: Insert an Element
- C++: Delete an Element
- C++: Merge two Arrays
- C++: Bubble Sort
- C++: Selection Sort
- C++: Insertion Sort
- C++: Common Elements
- C++: 2D Array Programs
- C++: Add Two Matrices
- C++: Subtract Two Matrices
- C++: Transpose Matrix
- C++: Multiply Two Matrices
- C++: 3D Array Programs
- C++ String Programs
- C++: Print String
- C++: Find String Length
- C++: Compare Two Strings
- C++: Copy String
- C++: String Concatenation
- C++: Reverse a String
- C++: Delete Vowels from a String
- C++: Delete a Word from a String
- C++: Count Characters in a String
- C++: Count Words in a String
- C++: Frequency of Words
- C++: Remove Spaces from Strings
- C++: Sort a String
- C++: Uppercase to Lowercase
- C++: Lowercase to Uppercase
- C++: Swap Two Strings
- C++: Check the Anagram or Not
- C++: Capitalize All Words in a String
- C++: Get Numbers from a String
- C++ File Programs
- C++: Read a File
- C++: Write Content to a File
- C++: Append Data to a File
- C++: Read and Display File
- C++: Copy a File
- C++: Merge Two Files
- Count Characters in a File
- C++: Capitalize Every Word
- C++: List Files in Directory
- C++: Delete a File
- C++: Encrypt and Decrypt a File
- C++ Misc Programs
- C++: Print ASCII Value
- C++: Add Binary Numbers
- C++: Generate Random Numbers
- C++: Print a Smiling Face
- C++: Days into Years and Months
- C++: Add Two Numbers using Pointer
- C++: Print Fibonacci Series
- C++: Generate Armstrong Numbers
- C++: Find nCr and nPr
- C++: Get IP Address
- C++: Print Date and Time
- C++: Shutdown and Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
C++ Program to Subtract Two Matrices
In this article, you will learn and get code to subtract two matrices using a C++ program. Here is the list of programs for matrix subtraction:
- Subtract two 3*3 matrices
- Subtract and print A-B=C. The first matrix is A, and the second matrix is B
- Allow the user to specify the size of the matrix
However, if you are unfamiliar with the topic, you should read the article on matrix subtraction before proceeding with these programs.
Note: In matrix subtraction, the same row and column elements of the second matrix get subtracted from the same row and column elements of the first matrix. Let me give you an example:
1 2 3 0 1 3 1 1 0 4 5 6 - 3 1 2 = 1 4 4 7 8 9 1 2 3 6 6 6
As you can see, element (0) of the first row, first column of the second matrix is subtracted from the element (1) of the first row, first column of the first matrix (1). Similarly, element (1) of the second matrix is subtracted from element (2) of the first matrix, and so on.
Subtract Two 3*3 Matrices in C++
To subtract two matrices in C++ programming, you have to ask the user to enter the two 3*3 matrices. That is, the first matrix has nine elements (numbers) and the second matrix has nine elements. Then subtract the second matrix from the first as shown in the program given below:
#include<iostream> using namespace std; int main() { int matOne[3][3], matTwo[3][3], matSub[3][3], i, j; cout<<"Enter 9 Elements for First Matrix: "; for(i=0; i<3; i++) { for(j=0; j<3; j++) cin>>matOne[i][j]; } cout<<"Enter 9 Elements for Second Matrix: "; for(i=0; i<3; i++) { for(j=0; j<3; j++) cin>>matTwo[i][j]; } for(i=0; i<3; i++) { for(j=0; j<3; j++) matSub[i][j] = matOne[i][j] - matTwo[i][j]; } cout<<"\nThe New Matrix (Subtraction Result) is:\n"; for(i=0; i<3; i++) { for(j=0; j<3; j++) cout<<matSub[i][j]<<" "; cout<<endl; } cout<<endl; return 0; }
This program was built and runs under the Code::Blocks IDE. Here is its sample run:
Now supply inputs, say 9, 8, 7, 6, 5, 4, 3, 2, and 1 as 9 elements for the first matrix and 8, 7, 6, 5, 4, 3, 2, 1, and 0 as 9 elements for the second matrix. Here is the sample output after subtracting two given matrices:
When the user enters 9, 8, 7, 6, 5, 4, 3, 2, and 1 as the 9 elements for the first matrix, then it gets stored in matOne[][] in this way:
- matOne[0][0]=9
- matOne[0][1]=8
- matOne[0][2]=7
- matOne[1][0]=6
- matOne[1][1]=5
- and so on up until
- matOne[2][2]=1
Whereas the 9 elements, say 8, 7, 6, 5, 4, 3, 2, 1, and 0 get stored in the second matrix, say matTwo[][], in a similar way, that is:
- matTwo[0][0]=8
- matTwo[0][1]=7
- matTwo[0][2]=6
- and so on upto
- matTwo[2][2]=0
Now the matrix subtraction with the following block of code gets performed:
for(i=0; i<3; i++) { for(j=0; j<3; j++) matSub[i][j] = matOne[i][j] - matTwo[i][j]; }
When we evaluate this block of code, then its dry run goes like this:
- matSub[0][0] = matOne[0][0] - matTwo[0][0]
- matSub[0][1] = matOne[0][1] - matTwo[0][1]
- matSub[0][2] = matOne[0][2] - matTwo[0][2]
- matSub[1][0] = matOne[1][0] - matTwo[1][0]
- matSub[1][1] = matOne[1][1] - matTwo[1][1]
- matSub[1][2] = matOne[1][2] - matTwo[1][2]
- matSub[2][0] = matOne[2][0] - matTwo[2][0]
- matSub[2][1] = matOne[2][1] - matTwo[2][1]
- matSub[2][2] = matOne[2][2] - matTwo[2][2]
Now, on putting the number or value for each:
- matSub[0][0] = 9 - 8
- matSub[0][0] = 8 - 7
- matSub[0][0] = 7 - 6
- matSub[0][0] = 6 - 5
- matSub[0][0] = 5 - 4
- matSub[0][0] = 4 - 3
- matSub[0][0] = 3 - 2
- matSub[0][0] = 2 - 1
- matSub[0][0] = 1 - 0
As you can see, the subtraction result is always 1; thus, 1 is stored in every index of matSub[][].
Subtract two matrices and print A-B=C
This program is similar to the previous program. But there is an extra feature included in this program. That extra feature is that this program shows the generalized way of doing matrix subtraction with A-B=C. Here, A is the first matrix, B is the second matrix, and C is the subtraction result of both matrices.
#include<iostream> using namespace std; int main() { int matOne[3][3], matTwo[3][3], matSub[3][3], i, j; cout<<"Enter 9 Elements for First Matrix: "; for(i=0; i<3; i++) { for(j=0; j<3; j++) cin>>matOne[i][j]; } cout<<"Enter 9 Elements for Second Matrix: "; for(i=0; i<3; i++) { for(j=0; j<3; j++) cin>>matTwo[i][j]; } for(i=0; i<3; i++) { for(j=0; j<3; j++) matSub[i][j] = matOne[i][j] - matTwo[i][j]; } cout<<"\nSubtraction of Two Matrix is:\n"; for(i=0; i<3; i++) { for(j=0; j<3; j++) cout<<matOne[i][j]<<" "; if(i==1) cout<<" -\t"; else cout<<"\t"; for(j=0; j<3; j++) cout<<matTwo[i][j]<<" "; if(i==1) cout<<" =\t"; else cout<<"\t"; for(j=0; j<3; j++) cout<<matSub[i][j]<<" "; cout<<endl; } cout<<endl; return 0; }
Here is its sample run with user input 1, 2, 3, 4, 5, 6, 7, 8, 9 as first matrix elements, and 0, 1, 2, 1, 2, 3, 1, 5, 3 as second matrix elements:
Subtract two matrices of the given size
This program allows the user to define the size of the matrix before entering the elements. The rest of the program is similar to the first program in this article:
#include<iostream> using namespace std; int main() { int rowOne, colOne, rowTwo, colTwo, i, j; int matOne[10][10], matTwo[10][10], matSub[10][10]; cout<<"Enter Row and Column Size for First Matrix: "; cin>>rowOne>>colOne; cout<<"Enter Row and Column Size for Second Matrix: "; cin>>rowTwo>>colTwo; if(rowOne==rowTwo && colOne==colTwo) { cout<<"\nEnter "<<rowOne*colOne<<" Elements for First Matrix: "; for(i=0; i<rowOne; i++) { for(j=0; j<colOne; j++) cin>>matOne[i][j]; } cout<<"\nEnter "<<rowTwo*colTwo<<" Elements for Second Matrix: "; for(i=0; i<rowTwo; i++) { for(j=0; j<colTwo; j++) cin>>matTwo[i][j]; } cout<<"\nThe New Matrix (Subtraction Result) is:\n"; for(i=0; i<rowOne; i++) { for(j=0; j<colOne; j++) { matSub[i][j] = matOne[i][j] - matTwo[i][j]; cout<<matSub[i][j]<<" "; } cout<<endl; } } else cout<<"\nRow and Column Size of Both Matrix Mismatched!"; cout<<endl; return 0; }
Now supply the following inputs:
- 2 as row size and 3 as column size for the first matrix
- 2 as row size and 3 as column size for the second matrix
- 1, 2, 3, 4, 5, 6 as 6 elements for the first matrix
- 0, 1, 1, 4, 2, 3 as 6 elements for the second matrix
After supplying these inputs, here is the sample output:
The same program in different languages
« Previous Program Next Program »