您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C語言中如何求兩個矩陣的乘積,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在數學中,矩陣(Matrix)是一個按照長方陣列排列的復數或實數集合,矩陣是高等代數學中的常見工具,也常見于統計分析等應用數學學科中。
矩陣的乘法有以下注意事項:
1、當矩陣A的列數(column)等于矩陣B的行數(row)時,A與B可以相乘。
2、矩陣C的行數等于矩陣A的行數,C的列數等于B的列數。
3、乘積C的第m行第n列的元素等于矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
代碼實現:只需要用矩陣乘積的公式求出新的矩陣,即為兩個矩陣的乘積,程序中還需要判斷輸入的兩個矩陣是否可以相乘。
#include <stdio.h> int main() { int line_a = 0; //A矩陣行數 int col_a = 0; //A矩陣列數 int line_b = 0; //B矩陣行數 int col_b = 0; //B矩陣列數 int i = 0; int j = 0; int k = 0; /* 獲取A矩陣行數和列數 */ printf("請輸入A矩陣的行數和列數\n"); scanf("%d%d", &line_a, &col_a); int matrix_A[line_a][col_a]; /* 獲取B矩陣行數和列數 */ printf("請輸入B矩陣的行數和列數\n"); scanf("%d%d", &line_b, &col_b); int matrix_B[line_b][col_b]; if(col_a != line_b) { printf("error,A矩陣的列數和B矩陣的行數必須相等!\n"); return 0; } int matrix_C[line_a][col_b]; //C矩陣:A矩陣和B矩陣的乘積 /* 獲取A矩陣元素 */ for(i = 0; i< line_a; i++) { printf("請輸入A矩陣第%d行元素\n", i); for(j = 0; j < col_a; j++) { scanf("%d", &matrix_A[i][j]); } } /* 獲取B矩陣元素 */ for(i = 0; i< line_b; i++) { printf("請輸入B矩陣第%d行元素\n", i); for(j = 0; j < col_b; j++) { scanf("%d", &matrix_B[i][j]); } } /* 打印矩陣 */ printf("輸入的A矩陣為:\n"); for(i = 0; i < line_a; i++) { for(j = 0; j < col_a; j++) { printf("%d\t", matrix_A[i][j]); } printf("\n"); } printf("輸入的B矩陣為:\n"); for(i = 0; i < line_b; i++) { for(j = 0; j < col_b; j++) { printf("%d\t", matrix_B[i][j]); } printf("\n"); } /* 求AB的乘積,即矩陣C */ for(i = 0; i < line_a; i++) { for(j = 0; j < col_b; j++) { matrix_C[i][j] = 0; //初始化 for(k = 0; k < col_a; k++) matrix_C[i][j] += matrix_A[i][k] * matrix_B[k][j]; } } /* 打印C矩陣 */ printf("A矩陣乘B矩陣:\n"); for(i = 0; i < line_a; i++) { for(j = 0; j < col_b; j++) { printf("%d\t", matrix_C[i][j]); } printf("\n"); } return 0; }
運行結果
關于C語言中如何求兩個矩陣的乘積就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。