how to do matrix multiplication in c
double[][] c = new double[N][N];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
for (int k = 0; k < N; k++)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
how to do matrix multiplication in c
double[][] c = new double[N][N];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
for (int k = 0; k < N; k++)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
multiply matrix in c
#include <stdio.h>
void main ()
{
int i, j, k, m1, n1, m2, n2;
int matrix1[10][10],matrix2[10][10],mult[10][10];
printf("Enter number of rows of matrix 1 : ");
scanf("%d", &m1);
printf("Enter number of columns of matrix 1 : ");
scanf("%d", &n1);
printf("\n");
for (i = 0; i < m1; i++)
{
for (j = 0; j < n1; j++)
{
printf("Enter element of matrix 1[%d][%d]: ", i, j);
scanf("%d", &matrix1[i][j]);
}
}
printf("\n");
printf("Enter number of rows of matrix 2 : ");
scanf("%d", &m2);
printf("Enter number of columns of matrix 2 : ");
scanf("%d", &n2);
printf("\n");
if(m1==n2)
{
for (i = 0; i < m2; i++)
{
for (j = 0; j < n2; j++)
{
printf("Enter elements of matrix 2[%d][%d]: ", i, j);
scanf("%d", &matrix2[i][j]);
}
}
printf("\n");
printf("\n....Your resultant matrix is....\n\n");
for(i=0;i<m1;i++)
{
for(j=0;j<n2;j++)
{
mult[i][j]=0;
for(k=0;k<m2;k++)
{
mult[i][j]+=matrix1[i][k]*matrix2[k][j];
}
}
}
for (i = 0; i < m1; i++)
{
for (j = 0; j < n2; j++)
{
printf("%d\t", mult[i][j]);
}
printf("\n");
}
}
else
printf("Matrix multiplication not possible");
}
matrix multiplication in c
#include <stdio.h>
// function to get matrix elements entered by the user
void getMatrixElements(int matrix[][10], int row, int column) {
printf("\nEnter elements: \n");
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("Enter a%d%d: ", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
}
// function to multiply two matrices
void multiplyMatrices(int first[][10],
int second[][10],
int result[][10],
int r1, int c1, int r2, int c2) {
// Initializing elements of matrix mult to 0.
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
result[i][j] = 0;
}
}
// Multiplying first and second matrices and storing it in result
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
for (int k = 0; k < c1; ++k) {
result[i][j] += first[i][k] * second[k][j];
}
}
}
}
// function to display the matrix
void display(int result[][10], int row, int column) {
printf("\nOutput Matrix:\n");
for (int i = 0; i < row; ++i) {
for (int j = 0; j < column; ++j) {
printf("%d ", result[i][j]);
if (j == column - 1)
printf("\n");
}
}
}
int main() {
int first[10][10], second[10][10], result[10][10], r1, c1, r2, c2;
printf("Enter rows and column for the first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for the second matrix: ");
scanf("%d %d", &r2, &c2);
// Taking input until
// 1st matrix columns is not equal to 2nd matrix row
while (c1 != r2) {
printf("Error! Enter rows and columns again.\n");
printf("Enter rows and columns for the first matrix: ");
scanf("%d%d", &r1, &c1);
printf("Enter rows and columns for the second matrix: ");
scanf("%d%d", &r2, &c2);
}
// get elements of the first matrix
getMatrixElements(first, r1, c1);
// get elements of the second matrix
getMatrixElements(second, r2, c2);
// multiply two matrices.
multiplyMatrices(first, second, result, r1, c1, r2, c2);
// display the result
display(result, r1, c2);
return 0;
}
matrix multiplication in c
#include <stdio.h>
int main()
{ int a_rows,a_cols,b_rows,b_cols,i,j,k,sum=0;
printf("Enter the rows and columns for first matrix (row)(col) :\n");
scanf("%d %d",&a_rows,&a_cols);
printf("Enter the rows and columns for second matrix (row)(col) :\n");
scanf("%d %d",&b_rows,&b_cols);
int a[a_rows][a_cols], b[b_rows][b_cols],matrix[10][10];
if(a_cols != b_rows){
printf("Sorry! We can't multiply the matrix because the column number of matrix 1 and the row number of matrix 2 aren't same !!\n");
}else{
printf("Enter elements for first matrix :\n");
for(i = 0; i < a_rows; i++){
for(j = 0; j< a_cols; j++){
scanf("%d",&a[i][j]);
}
}
printf("Enter elements for second matrix :\n");
for(i = 0; i < b_rows; i++){
for(j = 0; j < b_cols; j++){
scanf("%d",&b[i][j]);
}
}
printf("multiplying matrix....\n");
//multiplying matrix
for(i=0; i < a_rows; i++){
for(j = 0; j < b_cols; j++){
for(k = 0; k < a_cols; k++){
sum+=a[i][k] * b[k][j];
}
matrix[i][j] = sum;
sum=0;
}
printf("\n");
}
printf("first matrix :\n");
for(i = 0; i < a_rows; i++){
for(j = 0; j< a_cols; j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n\n");
printf("second matrix :\n");
for(i = 0; i < b_rows; i++){
for(j = 0; j< b_cols; j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
printf("Multiplied matrix :\n");
for(i = 0; i < a_rows; i++){
for(j = 0; j< b_cols; j++){
printf("%d ",matrix[i][j]);
}
printf("\n");
}
}
return 0;
}
matrix multiplication in c
#include <stdio.h>
void enterData(int first[][10], int second[][10], int r1, int c1, int r2, int c2);
void multiplyMatrices(int first[][10], int second[][10], int multResult[][10], int r1, int c1, int r2, int c2);
void display(int mult[][10], int r1, int c2);
int main() {
int first[10][10], second[10][10], mult[10][10], r1, c1, r2, c2;
printf("Enter rows and column for the first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for the second matrix: ");
scanf("%d %d", &r2, &c2);
// Taking input until columns of the first matrix is equal to the rows of the second matrix
while (c1 != r2) {
printf("Error! Enter rows and columns again.\n");
printf("Enter rows and columns for the first matrix: ");
scanf("%d%d", &r1, &c1);
printf("Enter rows and columns for the second matrix: ");
scanf("%d%d", &r2, &c2);
}
// Function to take matrices data
enterData(first, second, r1, c1, r2, c2);
// Function to multiply two matrices.
multiplyMatrices(first, second, mult, r1, c1, r2, c2);
// Function to display resultant matrix after multiplication.
display(mult, r1, c2);
return 0;
}
void enterData(int first[][10], int second[][10], int r1, int c1, int r2, int c2) {
printf("\nEnter elements of matrix 1:\n");
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c1; ++j) {
printf("Enter a%d%d: ", i + 1, j + 1);
scanf("%d", &first[i][j]);
}
}
printf("\nEnter elements of matrix 2:\n");
for (int i = 0; i < r2; ++i) {
for (int j = 0; j < c2; ++j) {
printf("Enter b%d%d: ", i + 1, j + 1);
scanf("%d", &second[i][j]);
}
}
}
void multiplyMatrices(int first[][10], int second[][10], int mult[][10], int r1, int c1, int r2, int c2) {
// Initializing elements of matrix mult to 0.
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
mult[i][j] = 0;
}
}
// Multiplying first and second matrices and storing in mult.
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
for (int k = 0; k < c1; ++k) {
mult[i][j] += first[i][k] * second[k][j];
}
}
}
}
void display(int mult[][10], int r1, int c2) {
printf("\nOutput Matrix:\n");
for (int i = 0; i < r1; ++i) {
for (int j = 0; j < c2; ++j) {
printf("%d ", mult[i][j]);
if (j == c2 - 1)
printf("\n");
}
}
}
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us