Course
Introduction
C "Hello, World!" ProgramPrint an Integer (Entered by the User)Add Two IntegersMultiply Two Floating-Point NumbersFind ASCII Value of a CharacterCompute Quotient and RemainderFind the Size of int, float, double and charSwap Two NumbersDecision Making and Loops
Check Whether a Number is Even or OddCheck Whether a Character is a Vowel or ConsonantFind the Largest Number Among Three NumbersFind the Roots of a Quadratic EquationCheck Leap YearCheck Whether a Number is Positive or NegativeCheck Whether a Character is an Alphabet or notCalculate the Sum of Natural NumbersFind Factorial of a NumberGenerate Multiplication TableDisplay Fibonacci SequenceFind GCD of two NumbersFind LCM of two NumbersDisplay Characters from A to Z Using LoopCount Number of Digits in an IntegerReverse a NumberCalculate the Power of a NumberCheck Whether a Number is Palindrome or NotCheck Whether a Number is Prime or NotDisplay Prime Numbers Between Two IntervalsCheck Armstrong NumberDisplay Armstrong Number Between Two IntervalsDisplay Factors of a NumberMake a Simple Calculator Using switch...casePrint Pyramids and PatternsFunctions
Demonstrate the Working of Keyword longDisplay Prime Numbers Between Intervals Using FunctionCheck Prime or Armstrong Number Using User-defined FunctionCheck Whether a Number can be Expressed as Sum of Two Prime NumbersFind the Sum of Natural Numbers using RecursionFind Factorial of a Number Using RecursionFind G.C.D Using RecursionConvert Binary Number to Decimal and vice-versaConvert Octal Number to Decimal and vice-versaConvert Binary Number to Octal and vice-versaReverse a Sentence Using Recursioncalculate the power using recursionArrays and Pointers
Calculate Average Using ArraysFind Largest Element in an ArrayCalculate Standard DeviationAdd Two Matrices Using Multi-dimensional ArraysMultiply Two Matrices Using Multi-dimensional ArraysFind Transpose of a MatrixMultiply two Matrices by Passing Matrix to a FunctionAccess Array Elements Using PointerC Program Swap Numbers in Cyclic Order Using Call by ReferenceFind Largest Number Using Dynamic Memory AllocationStrings
Find the Frequency of Characters in a StringCount the Number of Vowels, Consonants and so onRemove all Characters in a String Except AlphabetsFind the Length of a StringConcatenate Two StringsCopy String Without Using strcpy()Sort Elements in Lexicographical Order (Dictionary Order)Structures and Unions
Store Information of a Student Using StructureAdd Two Distances (in inch-feet system) using StructuresAdd Two Complex Numbers by Passing Structure to a FunctionCalculate Difference Between Two Time PeriodsStore Information of Students Using StructureStore Data in Structures DynamicallyC++ Program to Multiply two Matrices by Passing Matrix to Function
To understand this example, you should have the knowledge of the following C++ programming topics:
- C++ Arrays
- C++ Multidimensional Arrays
- Passing Array to a Function in C++ Programming
- C++ for Loop
- C++ while and do…while Loop
This program asks user to enter the size of the matrix (rows and columns).
Then, it asks the user to enter the elements of two matrices and finally it multiplies two matrix and displays the result.
To perform this task three functions are made:
- To take matrix elements from user
- To multiply two matrix
- To display the resultant matrix after multiplication
Example: Multiply Matrix by Passing it to a Function
#include <iostream>
using namespace std;
void enterData(int firstMatrix[][10], int secondMatrix[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond);
void multiplyMatrices(int firstMatrix[][10], int secondMatrix[][10], int multResult[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond);
void display(int mult[][10], int rowFirst, int columnSecond);
int main()
{
int firstMatrix[10][10], secondMatrix[10][10], mult[10][10], rowFirst, columnFirst, rowSecond, columnSecond, i, j, k;
cout << "Enter rows and column for first matrix: ";
cin >> rowFirst >> columnFirst;
cout << "Enter rows and column for second matrix: ";
cin >> rowSecond >> columnSecond;
// If colum of first matrix in not equal to row of second matrix, asking user to enter the size of matrix again.
while (columnFirst != rowSecond)
{
cout << "Error! column of first matrix not equal to row of second." << endl;
cout << "Enter rows and column for first matrix: ";
cin >> rowFirst >> columnFirst;
cout << "Enter rows and column for second matrix: ";
cin >> rowSecond >> columnSecond;
}
// Function to take matrices data
enterData(firstMatrix, secondMatrix, rowFirst, columnFirst, rowSecond, columnSecond);
// Function to multiply two matrices.
multiplyMatrices(firstMatrix, secondMatrix, mult, rowFirst, columnFirst, rowSecond, columnSecond);
// Function to display resultant matrix after multiplication.
display(mult, rowFirst, columnSecond);
return 0;
}
void enterData(int firstMatrix[][10], int secondMatrix[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond)
{
int i, j;
cout << endl << "Enter elements of matrix 1:" << endl;
for(i = 0; i < rowFirst; ++i)
{
for(j = 0; j < columnFirst; ++j)
{
cout << "Enter elements a"<< i + 1 << j + 1 << ": ";
cin >> firstMatrix[i][j];
}
}
cout << endl << "Enter elements of matrix 2:" << endl;
for(i = 0; i < rowSecond; ++i)
{
for(j = 0; j < columnSecond; ++j)
{
cout << "Enter elements b" << i + 1 << j + 1 << ": ";
cin >> secondMatrix[i][j];
}
}
}
void multiplyMatrices(int firstMatrix[][10], int secondMatrix[][10], int mult[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond)
{
int i, j, k;
// Initializing elements of matrix mult to 0.
for(i = 0; i < rowFirst; ++i)
{
for(j = 0; j < columnSecond; ++j)
{
mult[i][j] = 0;
}
}
// Multiplying matrix firstMatrix and secondMatrix and storing in array mult.
for(i = 0; i < rowFirst; ++i)
{
for(j = 0; j < columnSecond; ++j)
{
for(k=0; k<columnFirst; ++k)
{
mult[i][j] += firstMatrix[i][k] * secondMatrix[k][j];
}
}
}
}
void display(int mult[][10], int rowFirst, int columnSecond)
{
int i, j;
cout << "Output Matrix:" << endl;
for(i = 0; i < rowFirst; ++i)
{
for(j = 0; j < columnSecond; ++j)
{
cout << mult[i][j] << " ";
if(j == columnSecond - 1)
cout << endl << endl;
}
}
}
Output
Enter rows and column for first matrix: 3
2
Enter rows and column for second matrix: 3
2
Error! column of first matrix not equal to row of second.
Enter rows and column for first matrix: 2
3
Enter rows and column for second matrix: 3
2
Enter elements of matrix 1:
Enter elements a11: 3
Enter elements a12: -2
Enter elements a13: 5
Enter elements a21: 3
Enter elements a22: 0
Enter elements a23: 4
Enter elements of matrix 2:
Enter elements b11: 2
Enter elements b12: 3
Enter elements b21: -9
Enter elements b22: 0
Enter elements b31: 0
Enter elements b32: 4
Output Matrix:
24 29
6 25