C語言實(shí)現(xiàn)兩個(gè)矩陣相乘
更新時(shí)間:2018年05月21日 09:56:54 作者:我有點(diǎn)帥哦
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)兩個(gè)矩陣相乘的程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)兩個(gè)矩陣相乘的具體代碼,供大家參考,具體內(nèi)容如下
程序功能:實(shí)現(xiàn)兩個(gè)矩陣相乘的C語言程序,并將其輸出
代碼如下:
#include "stdafx.h"
#include "windows.h"
void Multi(int * left, int * right, int * result, int f1, int f2, int s1, int s2);
int main()
{
int i, j;
int a[4][3] =
{ {1,2,3},
{4,5,6},
{7,8,9},
{1,2,3}};
int b[3][3] =
{ { 1,2,3 },
{ 4,5,6 },
{7,8,9} };
//c矩陣為a矩陣與b矩陣的乘積
int c[4][3];
//計(jì)算兩個(gè)矩陣相乘
Multi(a[0], b[0],c[0], 4, 3, 3, 3);
//輸出c矩陣
for (i = 0; i < 4; i++)
{
for(j=0;j<3;j++)
printf("%4d ", c[i][j]);
printf("\n");
}
system("pause");
return 0;
}
//矩陣相乘算法,最后四個(gè)參數(shù)是兩個(gè)相乘的矩陣的行數(shù)和列數(shù)
void Multi(int * left, int * right, int * result,int f1, int f2, int s1, int s2)
{
//int a[f1][f2], b[s1][s2], c[f1][s2];
//a[i][j]==a[i*f2+j]
//由矩陣相乘,要求f2=s1,以下用f2
for (int i = 0; i < f1; i++) //i表示第i行
{
for (int j = 0; j < s2; j++) //j表示第j列
{
result[i*f2 + j] = 0; //在這里 result[i][j] = result[i*f2+j];
for(int p=0;p<f2;p++)
{
result[i*f2 + j] +=left[i*f2+p]*right[p*f2+j];
}
}
}
}
運(yùn)行結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++實(shí)現(xiàn)單鏈表刪除倒數(shù)第k個(gè)節(jié)點(diǎn)的方法
這篇文章主要介紹了C++實(shí)現(xiàn)單鏈表刪除倒數(shù)第k個(gè)節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了C++單鏈表的定義、遍歷及刪除相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
C語言 strftime 格式化顯示日期時(shí)間的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄狢語言 strftime 格式化顯示日期時(shí)間的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
詳解設(shè)計(jì)模式中的模板方法模式及在C++中的使用
這篇文章主要介紹了設(shè)計(jì)模式中的模板方法模式及在C++中的使用,模板方法將邏輯封裝到一個(gè)類中,并采取組合(委托)的方式解決這個(gè)問題,需要的朋友可以參考下2016-03-03

