




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include "stdafx.h"#include <stdlib.h>/ 結(jié)構(gòu)體typedef structdouble * mat;int row;int col;Matrix;void InitialMatrix(Matrix *T, int row,int col); / 只分配空間不初始化;void InitialMatrixZero(Matrix *T,int row, int col); /初始化為0void InitialMatrixRand(Matrix *T,int row, int col); / 初始化為50 以內(nèi)隨機(jī)正整數(shù)void
2、InputMatrix(Matrix *T);/鍵盤輸入矩陣void DestroyMatrix(Matrix *T);/釋放矩陣空間void PrintfMatrix(Matrix *T);/矩陣輸出int AddMatrix(Matrix *A,Matrix *B,Matrix *C);/ 矩陣加int MinusMatrix(Matrix *A,Matrix *B,Matrix *C); /矩陣減int MultiMatrix(Matrix *A,Matrix *B,Matrix *C);/ 矩陣乘法double MeanMatrix(Matrix *T);/ 矩陣元素均值int Sub
3、Matrix(Matrix *T1,Matrix *T2,int BeginRow,int BeginCol,int EndRow,int EndCol); / 求T1 的子矩陣T2;測(cè)試程序參考界面如下所示:矩陣函數(shù)測(cè)試,請(qǐng)選擇功能,輸入對(duì)應(yīng)的數(shù)字:*1:輸入一個(gè)矩陣,求矩陣均值;2:產(chǎn)生一個(gè)隨機(jī)數(shù)矩陣,求矩陣均值;3:輸入兩個(gè)個(gè)矩陣,求矩陣和;4:輸入兩個(gè)個(gè)矩陣,求矩陣差;5:輸入兩個(gè)個(gè)矩陣,求矩陣積;6:產(chǎn)生兩個(gè)個(gè)隨機(jī)數(shù)矩陣,求矩陣和;7:產(chǎn)生兩個(gè)個(gè)隨機(jī)數(shù)矩陣,求矩陣差;8:產(chǎn)生兩個(gè)個(gè)隨機(jī)數(shù)矩陣,求矩陣積;9:求矩陣的子陣,如矩陣的2-4 行, 1-3 列的子陣;0:結(jié)束!#includ
4、e <stdio.h>#include <stdlib.h>/ 結(jié)構(gòu)體typedef struct double *mat;int row;int col; Matrix;/ 函數(shù)聲明void InitialMatrix(Matrix *T, int row, int col);void InitialMatrixZero(Matrix *T, int row, int col);void InitialMatrixRand(Matrix *T, int row, int col);void InputMatrix(Matrix *T);void DestroyMatr
5、ix(Matrix *T);/ 釋放矩陣空間void PrintfMatrix(Matrix *T);/ 矩陣輸出int AddMatrix(Matrix *A, Matrix *B, Matrix *C);/ 矩陣加int MinusMatrix(Matrix *A, Matrix *B, Matrix *C); / 矩陣減int MultiMatrix(Matrix *A, Matrix *B, Matrix *C);/ 矩陣乘法double MeanMatrix(Matrix *T);/ 矩陣元素均值/int SubMatrix(Matrix *T1, Matrix *T2, int B
6、eginRow, int BeginCol, int EndRow, int EndCol); / 求T1 的子矩陣T2;void NMatrix(void);/ 求逆矩陣/ 主函數(shù)int main()int inputevent;/int i, j;int row, col;Matrix T;Matrix A;Matrix B;Matrix C;printf(" 矩陣函數(shù)測(cè)試,請(qǐng)選擇功能,輸入對(duì)應(yīng)的數(shù)字:n");printf(" *printf("1 :輸入一個(gè)矩陣,求矩陣均值;n");printf("2 :產(chǎn)生一個(gè)隨機(jī)數(shù)矩陣,求矩
7、陣均值;n");printf("3 :輸入兩個(gè)個(gè)矩陣,求矩陣和;n");printf("4 :輸入兩個(gè)個(gè)矩陣,求矩陣差;n");printf("5 :輸入兩個(gè)矩陣,求矩陣積;");printf("n6 :產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣和;n");printf("7 :產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣差;n");printf("8 :產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣積;n");printf("9: 求矩陣的子陣,如矩陣的2-4 行 D,1-3 列的子陣;n");p
8、rintf("10 :輸入一個(gè)方陣,求其逆矩陣n");printf("0: 結(jié)束 !n");printf("nn 選擇: ");scanf("%d", &inputevent);while (inputevent != 0)if (inputevent = 1) printf(" 您要輸入的矩陣的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&T, row, col);Init
9、ialMatrixZero(&T, T.row, T.col);InputMatrix(&T);printf("n 矩陣的平均值為:n%lfnn", MeanMatrix(&T);DestroyMatrix(&T);if (inputevent = 2) printf(" 輸入您要產(chǎn)生的矩陣的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&T, row, col);InitialMatrixRand(&T
10、, row, col);MeanMatrix(&T);PrintfMatrix(&T);printf("n 矩陣的平均值為:n%lfnn", MeanMatrix(&T);DestroyMatrix(&T);if (inputevent = 3) printf("您要輸入的矩陣A的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&A, row, col);InitialMatrixZero(&A, A.ro
11、w, A.col);InputMatrix(&A);printf(" 您要輸入的矩陣B 的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixZero(&B, B.row, B.col);InputMatrix(&B);InitialMatrix(&C, B.row, B.col);InitialMatrixZero(&C, C.row, C.col);if (AddMatri
12、x(&A, &B, &C) = 1) printf("nn 矩陣的和為:A*Bnn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算!nn");DestroyMatrix(&A);DestroyMatrix(&B);DestroyMatrix(&C);if (inputevent = 4) printf("您要輸入的矩陣A的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);Ini
13、tialMatrix(&A, row, col);InitialMatrixZero(&A, A.row, A.col);InputMatrix(&A);printf(" 您要輸入的矩陣B 的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixZero(&B, B.row, B.col);InputMatrix(&B);InitialMatrix(&C, B.row,
14、B.col);InitialMatrixZero(&C, C.row, C.col);if (MinusMatrix(&A, &B, &C) = 1) printf("n 矩陣的差為:A-B=nn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算!nn");DestroyMatrix(&A);DestroyMatrix(&B);DestroyMatrix(&C);if (inputevent = 5) int able;printf("您要輸入的矩陣
15、A的行數(shù)和列數(shù)e.g: 5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&A, row, col);InitialMatrixZero(&A, A.row, A.col);InputMatrix(&A);printf(" 您要輸入的矩陣B 的行數(shù)和列數(shù)e.g:5,6: ");scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixZer
16、o(&B, B.row, B.col);InputMatrix(&B);InitialMatrix(&C, A.row, B.col);InitialMatrixZero(&C, C.row, C.col);able = MultiMatrix(&A, &B, &C);if (able = 1) printf("n 積為: A*Bnn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算!nn");DestroyMatrix(&A);DestroyMatri
17、x(&B);DestroyMatrix(&C);if (inputevent = 6) printf("您要產(chǎn)生的矩陣A的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&A, row, col);InitialMatrixRand(&A, row, col);printf("A 為: nn");PrintfMatrix(&A);printf(" 您要產(chǎn)生的矩陣B 的行數(shù)和列數(shù)e.g:5,6: "
18、;);scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixRand(&B, row, col);printf("B 為: nn");PrintfMatrix(&B);InitialMatrix(&C, A.row, A.col);InitialMatrixZero(&C, C.row, C.col);if (AddMatrix(&A, &B, &C) = 1) printf("n 矩
19、陣的和為:A+B=nn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算!nn");DestroyMatrix(&A);DestroyMatrix(&B);DestroyMatrix(&C);if (inputevent = 7) printf("您要產(chǎn)生的矩陣A的行數(shù)和列數(shù)e.g:5,6:");scanf("%d,%d", &row, &col);InitialMatrix(&A, row, col);InitialMatrixRand(
20、&A, row, col);printf(" 您要產(chǎn)生的矩陣B 的行數(shù)和列數(shù)e.g:5,6: ");scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixRand(&B, row, col);InitialMatrix(&C, A.row, A.col);InitialMatrixZero(&C, C.row, C.col);if (MinusMatrix(&A, &B, &C) = 1) pr
21、intf("n 矩陣的差為:A-B=nn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算!nn");DestroyMatrix(&A);DestroyMatrix(&B);DestroyMatrix(&C); if (inputevent = 8) printf("您要產(chǎn)生的矩陣A的行數(shù)和列數(shù)e.g:5,6: n");scanf("%d,%d", &row, &col);InitialMatrix(&A, row, col);I
22、nitialMatrixRand(&A, row, col);printf("A 為: nn");PrintfMatrix(&A);printf(" 您要產(chǎn)生的矩陣B 的行數(shù)和列數(shù)e.g:5,6: n");scanf("%d,%d", &row, &col);InitialMatrix(&B, row, col);InitialMatrixRand(&B, row, col);printf("B 為: nn");PrintfMatrix(&B);Initial
23、Matrix(&C, A.row, A.col);InitialMatrixZero(&C, C.row, C.col);if (MultiMatrix(&A, &B, &C) = 1) printf("n 積為: A*B=nn");PrintfMatrix(&C);else printf("nn 無(wú)法計(jì)算;nn");DestroyMatrix(&A);DestroyMatrix(&B);DestroyMatrix(&C);if (inputevent = 9) printf(&qu
24、ot; 對(duì)不起,該函數(shù)尚在完善中nn");if (inputevent = 10) NMatrix();if (inputevent = 0) break;n");printf(" 矩陣函數(shù)測(cè)試,請(qǐng)選擇功能,輸入對(duì)應(yīng)的數(shù)字:printf(n *nn");printf("1 :輸入一個(gè)矩陣,求矩陣均值;n");printf("2 :產(chǎn)生一個(gè)隨機(jī)數(shù)矩陣,求矩陣均值;產(chǎn)一個(gè)隨機(jī)數(shù)矩陣,求矩陣均值;n");printf("3 :輸入兩個(gè)個(gè)矩陣,求矩陣和;n");printf("4 :輸入兩個(gè)個(gè)
25、矩陣,求矩陣差;n");printf("5 :輸入兩個(gè)矩陣,求矩陣積;");printf("n6:產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣和;n");printf("7 :產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣差;產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣差;n");printf("8 :產(chǎn)生兩個(gè)隨機(jī)數(shù)矩陣,求矩陣積;n");printf("9: 求矩陣的子陣,如矩陣的2-4 行 D,1-3 列的子陣;n");printf("10 :輸入一個(gè)方陣,求其逆矩陣n");printf("0: 結(jié)束 !n
26、");printf("nn 選擇: ");scanf("%d", &inputevent);return 0;/ 其他函數(shù)void InitialMatrix(Matrix *T, int row, int col) /printf(" 分配內(nèi)存中n");int i;int succ = 1;/T=(Matrix *)malloc(sizeof(Matrix);T->row = row; T->col = col;T->mat = (double *)malloc(T->row * sizeo
27、f(double *);if (T->mat = NULL) succ = 0; else for (i = 0; i < T->row; i+) T->mati = (double *)malloc(T->col * sizeof(double); if (T->mati = NULL) succ = 0; break;/if(succ=1)/ printf(" 內(nèi)存分配成功| ; ?n");/else printf(" 內(nèi)存分配失敗;n");void InitialMatrixZero(Matrix *T, int
28、 row, int col) /printf(" 矩陣初始化為零中n");int i, j;for (i = 0; i < row; i+)for (j = 0; j < col; j+) T->matij = 0;/printf(" 矩陣初始化為零矩陣成功;n");void InitialMatrixRand(Matrix *T, int row, int col) int i, j;for (i = 0; i < row; i+)for (j = 0; j < col; j+)(*T).matij = rand() %
29、50; void InputMatrix(Matrix *T) printf(" 輸入矩陣:n");int i, j;for (i = 0; i < (*T).row; i+)for (j = 0; j < (*T).col; j+)scanf("%lf", &(*T).matij); void DestroyMatrix(Matrix *T)int i;for (i = 0; i < (*T).row; i+) free(*T).mati);void PrintfMatrix(Matrix *T)int i, j;for (i
30、 = 0; i < (*T).row; i+) for (j = 0; j < (*T).col; j+) printf("%lf ", (*T).matij);printf("n"); int AddMatrix(Matrix *A, Matrix *B, Matrix *C)int i, j;if (*A).row = (*B).row && (*A).col = (*B).col)for (i = 0; i < (*A).row; i+)for (j = 0; j < (*A).col; j+)(*C).ma
31、tij = (*A).matij + (*B).matij;for (i = 0; i < (*A).row; i+)for (j = 0; j < (*A).col; j+)return 1;else printf(" 這兩個(gè)矩陣不能相加!n");return 0; int MinusMatrix(Matrix *A, Matrix *B, Matrix *C)int i, j;if (*A).row = (*B).row && (*A).col = (*B).col) for (i = 0; i < (*A).row; i+)for (
32、j = 0; j < (*A).col; j+)(*C).matij = (*A).matij - (*B).matij;return 1;elseprintf(" 這兩個(gè)矩陣不能相減!n");return 0; int MultiMatrix(Matrix *A, Matrix *B, Matrix *C)int i=0, j=0;int k = 0;if (*A).col = (*B).row)for (i = 0; i < (*A).row; i+) for (j = 0; j < (*B).col; j+)for(k=0;k <(A->col);k+)(*C).matij += (*A).matik * (*B).matkj;return 1;elseprintf(" 這兩個(gè)矩陣不能相乘!n");return 0;double MeanMatrix(Matrix *T)/ 矩陣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- HY/T 0435-2024海洋生物資源碳庫(kù)貢獻(xiàn)調(diào)查與評(píng)估技術(shù)規(guī)程貝類(筏式養(yǎng)殖)
- 實(shí)驗(yàn)室風(fēng)險(xiǎn)控制措施的制定與實(shí)施考核試卷
- 農(nóng)產(chǎn)品加工企業(yè)質(zhì)量管理體系持續(xù)改進(jìn)計(jì)劃考核試卷
- 健身器材安全標(biāo)準(zhǔn)與噪音控制標(biāo)準(zhǔn)考核試卷
- 萬(wàn)用表設(shè)計(jì)與生產(chǎn)考核試卷
- 數(shù)字化制鞋業(yè)中的市場(chǎng)趨勢(shì)分析與預(yù)測(cè)模型考核試卷
- 復(fù)雜介質(zhì)的熒光光譜特性研究考核試卷
- 數(shù)字化印刷品設(shè)計(jì)中的跨領(lǐng)域知識(shí)整合研究考核試卷
- 化妝品市場(chǎng)細(xì)分趨勢(shì)考核試卷
- 化學(xué)纖維在體育器材改良中的應(yīng)用考核試卷
- 勞動(dòng)仲裁內(nèi)部培訓(xùn)
- 工廠注塑考試題及答案
- 2024年懷化麻陽(yáng)苗族自治縣招聘事業(yè)單位工作人員筆試真題
- 湖南省長(zhǎng)沙市望城區(qū)第二中學(xué)2024-2025學(xué)年高一下學(xué)期6月第三次月考政治試卷(含答案)
- 四川省甘孜州道孚一中學(xué)2025屆七下英語(yǔ)期末統(tǒng)考試題含答案
- 廣東省深圳市寶安區(qū)2023-2024學(xué)年四年級(jí)下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 緬甸語(yǔ)教學(xué)與學(xué)習(xí)作業(yè)指導(dǎo)書
- 水表制造企業(yè)生產(chǎn)條件要求征求意見(jiàn)稿
- 機(jī)械原理課程設(shè)計(jì)-沖壓機(jī)構(gòu)及送料機(jī)構(gòu)設(shè)計(jì)說(shuō)明書
- 人民網(wǎng)刪除稿件(帖文)申請(qǐng)登記表
- 服裝校服投標(biāo)書模板(精編版)
評(píng)論
0/150
提交評(píng)論