第一范文网 - 专业文章范例文档资料分享平台

矩阵运算 - C语言实现

来源:用户分享 时间:2025/9/9 17:45:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#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语言实现 的文档
矩阵运算 - C语言实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0abfy8kuiw85bn78arf2570pk9t7uz00b4j_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top