云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 矩阵运算 - C语言实现

矩阵运算 - C语言实现

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 9:11:08

#include \#include //结构体

typedef struct{

double ** mat; int row; int col;

}Matrix;

void InitialMatrix(Matrix *T, int row,int col); //只分配空间不初始化; void InitialMatrixZero(Matrix *T,int row, int col); //初始化为0

void InitialMatrixRand(Matrix *T,int row, int col); //初始化为50以内随机正整数 void 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 SubMatrix(Matrix *T1,Matrix *T2,int BeginRow,int BeginCol,int EndRow,int EndCol); //求T1的子矩阵T2;

测试程序参考界面如下所示:

矩阵函数测试,请选择功能,输入对应的数字: *************************************************** 1:输入一个矩阵,求矩阵均值; 2:产生一个随机数矩阵,求矩阵均值; 3:输入两个个矩阵,求矩阵和; 4:输入两个个矩阵,求矩阵差;

5:输入两个个矩阵,求矩阵积; 6:产生两个个随机数矩阵,求矩阵和; 7:产生两个个随机数矩阵,求矩阵差; 8:产生两个个随机数矩阵,求矩阵积;

9:求矩阵的子阵,如矩阵的2-4行,1-3列的子阵; 0:结束!

#include #include

//结构体

typedef struct { double **mat; int row; int col; } Matrix; //函数声明

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 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 SubMatrix(Matrix *T1, Matrix *T2, int BeginRow, int BeginCol, int EndRow, int EndCol); //求T1的子矩阵T2;

void NMatrix(void);//求逆矩阵

//主函数 int main() { int inputevent; //int i, j; int row, col; Matrix T; Matrix A;

Matrix B; Matrix C;

printf(\ 矩阵函数测试,请选择功能,输入对应的数字:\\n\

printf(\printf(\:输入一个矩阵,求矩阵均值;\\n\

printf(\:产生一个随机数矩阵,求矩阵均值;\\n\printf(\:输入两个个矩阵,求矩阵和;\\n\printf(\:输入两个个矩阵,求矩阵差;\\n\printf(\:输入两个矩阵,求矩阵积;\

printf(\:产生两个随机数矩阵,求矩阵和;\\n\printf(\:产生两个随机数矩阵,求矩阵差;\\n\printf(\:产生两个随机数矩阵,求矩阵积;\\n\

printf(\求矩阵的子阵,如矩阵的2-4行D,1-3列的子阵;\\n\printf(\:输入一个方阵,求其逆矩阵\\n\printf(\结束!\\n\printf(\选择:\scanf(\

while (inputevent != 0) { if (inputevent == 1) { printf(\您要输入的矩阵的行数和列数e.g:5,6:\ scanf(\ InitialMatrix(&T, row, col); InitialMatrixZero(&T, T.row, T.col); InputMatrix(&T);

}

if (inputevent == 2) { }

printf(\输入您要产生的矩阵的行数和列数e.g:5,6:\scanf(\InitialMatrix(&T, row, col);

InitialMatrixRand(&T, row, col); MeanMatrix(&T); PrintfMatrix(&T);

printf(\矩阵的平均值为:\\n%lf\\n\\n\DestroyMatrix(&T);

printf(\矩阵的平均值为:\\n%lf\\n\\n\DestroyMatrix(&T);

if (inputevent == 3) {

printf(\您要输入的矩阵A的行数和列数e.g:5,6:\scanf(\InitialMatrix(&A, row, col);

InitialMatrixZero(&A, A.row, A.col); InputMatrix(&A);

printf(\您要输入的矩阵B的行数和列数e.g:5,6:\scanf(\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 (AddMatrix(&A, &B, &C) == 1) {

printf(\矩阵的和为:A*B\\n\\n\ PrintfMatrix(&C); }

else printf(\无法计算!\\n\\n\

}

DestroyMatrix(&A); DestroyMatrix(&B); DestroyMatrix(&C);

if (inputevent == 4) {

printf(\您要输入的矩阵A的行数和列数e.g:5,6:\scanf(\InitialMatrix(&A, row, col);

InitialMatrixZero(&A, A.row, A.col); InputMatrix(&A);

printf(\您要输入的矩阵B的行数和列数e.g:5,6:\scanf(\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 (MinusMatrix(&A, &B, &C) == 1) {

搜索更多关于: 矩阵运算 - C语言实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#include \#include //结构体 typedef struct{ double ** mat; int row; int col; }Matrix; void InitialMatrix(Matrix *T, int row,int col); //只分配空间不初始化; void InitialMatrixZero(Matrix *T,int row, int col); //初始化为0 void InitialMatrixRand(Matrix *T,int row, int col); //初始化为50以内随机正整数 void InputMatrix(Matrix *T);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com