c語言程式設計求矩陣乘積C語言程式設計求矩陣乘積。

2021-03-05 09:21:58 字數 6371 閱讀 1576

1樓:夢丶丶幽魂

#include "iostream.h"

void matrixchain(int *p,int n,int **m,int **s)}}

}根據具體問題型別,進行步驟拆解/原因原理分析/內容拓展等。

具體步驟如下:/導致這種情況的原因主要是……

2樓:龍__鳳

#include"stdio.h"

void main()

for(i=0;i<2;i++)//輸入

for(i=0;i<3;i++)//計算

}for(i=0;i<3;i++)//輸出}

3樓:匿名使用者

#include

int main()

,,},b[2][3]=,};

int i,j;

for(i=0;i<3;i++)

for(j=0;j<2;j++)

return 0;}

4樓:匿名使用者

#include

int main()

}printf("2*3矩陣:\n");

int  b[6];

for (i=0; i<2; ++i)

}int c[9];

for (i=0; i<3; ++i)

c[i*3+j] = temp;}}

for (int i=0;i<3;++i)printf("\n");

}return 0;}

求c語言編寫矩陣相乘程式

5樓:

void matrix(int b[x],int c[y])

printf("please input int matrix c[%d][%d]\n",x,y);

for(i=0;i

for(j=0;j

matrix(b,c);

printf("now print resource matrix b[%d][%d]=",x,y);

for(i=0;i

printf("\n");

printf("now print resource matrix c[%d][%d]=",x,y);

for(i=0;i

printf("\n");

printf("now printm multiply results matrix a[%d][%d]=b*c:",x,y);

for(i=0;i

getch();

return 0;

}void matrix(int b[x],int c[y])}

如何用c語言編寫一個求兩個矩陣相乘的結果

6樓:勤奮的上大夫

/* matrix_main.cpp */

//#include

#include

#include

#include

/* #include */

void main(void)

{int col, row, row_s; /* the column & row of the matrix */

int **pm_f = null, **pm_s = null; /* point to two matrix,they will be multiplied */

int **pm_r = null; /* the matrix will store the result */

int i, j, k;

printf("input column & row of the first matrix:\n(depart with blank): ");

scanf("%d %d", &col, &row);

printf("input row of the second one:\n(column needn't): ");

scanf("%d", &row_s);

/* ---------------request storage for process--------------- */

pm_f = (int**)malloc(col * sizeof(int*));

pm_s = (int**)malloc(row * sizeof(int*));

pm_r = (int**)malloc(col * sizeof(int*));

for (i=0; i

7樓:癯月笑浮生

用二維陣列,遍歷相乘

c語言:編寫完整程式:計算兩個矩陣的乘積。 5

8樓:

#include

#include

#include

void caidan();

#define max 12500

typedef structtriple;

typedef structts;

//矩陣的轉置實現函式

,p,q;

t.m=m.n;

t.n=m.m;

t.t=m.t;

if(t.t)}}

//矩陣的乘法y=m*q實現函式

for(i1=0;i1>m;

cout<<"請輸入你要輸入的陣列的列數:"<>n;

int**pp=new int*[m];

for(i1=0;i1>pp[i1][j1];

}cout<>m;

cout<<"請輸入你要輸入的陣列的列數:"<>n;

int**p=new int*[m];

for(i1=0;i1>p[i1][j1];

}cout<>m;

cout<<"請輸入你要輸入的陣列的列數:"<>n;

int**p2=new int*[m];

for(i1=0;i1>p2[i1][j1];

}cout<>i;

switch(i)

}//主函式

void main()

9樓:摩添止婷秀

#include

"stdio.h"

#include

"stdlib.h"

void

main

()double

a[200][200]=,

b[200][200]=,sum=0;

inti,j,k=0;

for(i=0;i

}printf("隨機矩陣a是:\n");

for(i=0;i

printf("\n");

}//cout<<"輸入一個3*2的矩陣:"<

for(i=0;i

}printf("隨機矩陣b是:\n");

for(i=0;i

printf("\n");

}printf("ab相乘結果為:\n");

for(i=0;i

printf("%f

",sum);

k++;

sum=0;

}k=0;

printf("\n");}}

用c語言實現兩個矩陣相乘怎麼做?

10樓:灩麗

1、程式執行輸入資料時,第一行為a矩陣的行列數和b矩陣的行列數,接著分別輸入a、b兩個矩陣的值。

2、首先,定義6個整型變數,儲存a、b矩陣的行和列,以及控制迴圈的變數,k則用於實現矩陣的乘法。

3、接著,定義三個整型二維陣列,儲存a、b和c矩陣的各元素。

4、輸入三個矩陣的行數和列數,儲存在變數a、b、c中。

5、輸入矩陣a的各元素,儲存在陣列x中。

6、輸入矩陣b的各元素,儲存在陣列y中。

7、將二維陣列z的各元素,初始化為0。

8、用兩層for迴圈,控制矩陣的乘法,並輸出乘法所得的結果。

9、計算a矩陣和b矩陣的乘法,結果儲存在陣列z中。

10、最後,輸出乘法所得的結果,即輸出z陣列中的所有元素。

11、執行程式,輸入矩陣a和b的行數和列數,以及a矩陣和b矩陣的所有元素,電腦就會計算出乘積c矩陣的所有元素,並輸出c矩陣。

11樓:匿名使用者

#include

#include

#define m 3

int main(void)

{int i,j,k,matrix1[m][m],matrix2[m][m],row1=m ,col1=m ,row2=m,col2=m,matrix[m][m];

/*為需要相乘的兩個矩陣賦值:*/

printf("輸入第一個矩陣:\n");

for(i=0;i

12樓:育知同創教育

c語言實現矩陣相乘

問題描述:

編寫程式,可以實現m*n矩陣和n*p矩陣相乘。m,n,p均小於10,矩陣元素為整數。

分析:首先我們可以根據題意寫出函式頭。可以定為void matrixmutiply(int m,int n,int p,long lmatrix1[max][max],long lmatrix2[max][max],long lmatrixresult[max][max]),其中lmatrix1和lmatrix2分別是輸入的m*n矩陣和n*p矩陣,lmatrixresult是輸出的m*p矩陣。

因為m,n和p都是未知量,要進行處理的矩陣大小是變數。但我們可以定義比較大的二維陣列,只使用其中的部分陣列元素。

矩陣相乘的演算法比較簡單,輸入一個m*n矩陣和一個n*p矩陣,結果必然是m*p矩陣,有m*p個元素,每個元素都需要計算,可以使用m*p巢狀迴圈進行計算。

根據矩陣乘法公式:

可以用迴圈直接套用上面的公式計算每個元素。巢狀迴圈內部進行累加前,一定要注意對累加變數進行清零。

資料要求

問題中的常量:

#define max 10  /*矩陣最大行數和列數*/

問題的輸入:

int m,n,p;   /*相乘的兩個矩陣的行列數*/

long lmatrix1[max][max],lmatrix2[max][max]; /*相乘的兩個矩陣*/

問題的輸出:

long lmatrixresult[max][max];    /*矩陣相乘後得到的矩陣*/

初始演算法

1.輸入兩個矩陣的的行列數m,n,p;

2.輸入第一個矩陣的每個元素;

3.輸入第二個矩陣的每個元素;

4.呼叫函式進行乘法運算,結果放在lmatrixresult 中;

5. 列印輸出結果矩陣。

演算法細化

演算法的步驟4計算兩個矩陣的乘法演算法如下:

4.1 定義迴圈變數i,j,k;

4.2 巢狀迴圈計算結果矩陣(m*p)的每個元素。

程式**如下:

#define max 10

void matrixmutiply(int m,int n,int p,long lmatrix1[max][max],

long lmatrix2[max][max],long lmatrixresult[max][max])

}main()

/*輸入第二個矩陣的每個元素*/

printf("\nplease elements of matrix2(%d*%d):\n",n,p);

for(i=0;i

for(j=0;j

/*呼叫函式進行乘法運算,結果放在lmatrixresult 中*/

matrixmutiply(m,n,p,lmatrix1,lmatrix2,lmatrixresult);

/*列印輸出結果矩陣*/

printf("\nresult matrix: \n");

for(i=0;i

}程式執行結果如下:

please input m of matrix1:

**lease input n of matrix1:

2please input p of matrix2:

**lease elements of matrix1(3*2):

1 20 1

3 0please elements of matrix2(2*3):

1 2 0

3 1 1

result matrix:

7 4 2

3 1 1

3 6 0

c語言程式設計求33矩陣的轉置矩陣,C語言程式設計 求3 3矩陣的轉置矩陣

思路 定了兩個二維抄陣列分別儲存轉置前bai後的矩陣du,接著for迴圈依次轉zhi置即可。參考 include int main b 3 3 int i,j for i 0 i 3 i for j 0 j 3 j b j i a i j for i 0 i 3 i return 0 執行結dao果...

C語言程式設計,c語言程式設計。

判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea...

c語言程式設計求思路,C語言程式設計 ,求思路

我的思想與一樣,就是把丁俊暉最後的點的對稱點找到。如圖示,x1 y1 點是 x1,y1 對於右邊牆面的對稱點,當有左右兩面牆的反射是就計算兩面的反射。前後牆同左右牆,圖中 x0 y0 就是 x0,y0 對於前後牆的反射點。而 x1 y1 是我把丁俊暉運動路線還原成直線後,丁俊暉的位置。現在我們就可以...