矩阵的运算程序C语言版.doc

上传人:scccc 文档编号:12452938 上传时间:2021-12-04 格式:DOC 页数:6 大小:41.50KB
返回 下载 相关 举报
矩阵的运算程序C语言版.doc_第1页
第1页 / 共6页
矩阵的运算程序C语言版.doc_第2页
第2页 / 共6页
矩阵的运算程序C语言版.doc_第3页
第3页 / 共6页
矩阵的运算程序C语言版.doc_第4页
第4页 / 共6页
矩阵的运算程序C语言版.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《矩阵的运算程序C语言版.doc》由会员分享,可在线阅读,更多相关《矩阵的运算程序C语言版.doc(6页珍藏版)》请在三一文库上搜索。

1、#i nclude<stdio.h>#defi ne M 20#defi ne N 20 float AMN; float BMN; float CMN; int i,j,m, n,p,q; float y=1.0; void mai n()prin tf(" # n");printf(" # printf(" # printf(" # printf(" # printf(" #欢迎您使用 矩阵函数包系统。#n");系统功能:#n");计算两个矩阵相加,相减;#n");数乘矩阵;矩阵

2、转置;求逆#n");矩阵 #n");prin tf(" # n"); printf(”请选择您需要的运算,按回车键结束n");printf('*n")printf("1,矩阵相加 n");printf("2,矩阵相减 n");printf("3,数乘矩阵 n");printf("4,矩阵转置 n");printf("5,逆矩阵 n");printf("6,退出 n");printf(' * *n&qu

3、ot;);int x;sca nf("%d", &x); switch (x)case 1: printf(”请输入矩阵A的行数和列数(用逗号隔开):");sca nf("%d,%d",&i,&j);printf("请输入矩阵B的行数和列数(用逗号隔开):");sca nf("%d,%d",&m,&n);if(i!=m|j!=n)prin tf("*对不起,您输入的两个矩阵不能相加,请重试.*n");else printf(" 请输入矩

4、阵 A:n");for(p=0;p<i;p+)for(q=0;qvj;q+)sca nf("%f",&Apq);printf(" 输出矩阵 A:n");for(p=0;p<i;p+)for(q=0;q<j;q+)printf("%10.2f",Apq);if(q+1)%j=0)printf("n");printf(" 请输入矩阵 B: n");for(p=0;p<i;p+)for(q=0;q<j;q+) scanf("%f",&

5、amp;Bpq);printf(" 输出矩阵 B:n");for(p=0;p<i;p+)for(q=0;q<j;q+)printf("%10.2f",Bpq);if(q+1)%j=0)printf("n");printf(”矩阵A+矩阵B为:n"); /计算两个矩阵相加for(p=0;p<i;p+) for(q=0;q<j;q+)Cpq=Apq+Bpq;for(p=0;p<i;p+)for(q=0;q<j;q+)printf("%10.2f",Cpq);if(q+1)%

6、j=0)printf("n");break;case 2:printf(”请输入矩阵A的行数和列数(用逗号隔开):");scanf("%d,%d",&i,&j);printf("请输入矩阵B的行数和列数(用逗号隔开):");scanf("%d,%d",&m,&n);if(i!=m|j!=n).*n");printf("* 对不起,您输入的两个矩阵不能相减,请重试 else printf(" 请输入矩阵 A:n");for(p=0;p&

7、lt;i;p+)for(q=0;q<j;q+)scanf("%f",&Apq);printf(" 输出矩阵 A:n"); for(p=0;p<i;p+) for(q=0;q<j;q+) printf("%10.2f",Apq); if(q+1)%j=0) printf("n");printf(" 请输入矩阵 B: n"); for(p=0;p<i;p+) for(q=0;q<j;q+) scanf("%f",&Bpq); prin

8、tf(" 输出第矩阵 B:n");for(p=0;p<i;p+)for(q=0;q<j;q+) printf("%10.2f",Bpq); if(q+1)%j=0) printf("n");printf("矩阵A-矩阵B为:n"); /计算两个矩阵相减for(p=0;p<i;p+) for(q=0;q<j;q+)Cpq=Apq-Bpq;for(p=0;p<i;p+)for(q=0;q<j;q+) printf("%10.2f",Cpq);if(q+1)%j=0

9、)printf("n");break;case 3:float k;printf(”请输入矩阵A的行数和列数(用逗号隔开):");scanf("%d,%d",&i,&j);printf(" 请输入矩阵 An"); for(p=0;p<i;p+) for(q=0;q<j;q+) scanf("%f",&Apq);printf(" 输出矩阵 An");for(p=0;p<i;p+)for(q=0;qvj;q+)prin tf("%10.2

10、f",Apq);if(q+1)%j=0)prin tf("n");printf(”请输入一个实数:n");sea nf("%f",&k);for(p=0;p<i;p+) /数乘矩阵for(q=0;q<j;q+)Bpq=k*Apq;printf(”输出k乘矩阵A的结果n");for(p=0;p<i;p+)for(q=0;q<j;q+)prin tf("%10.2f",Bpq);if(q+1)%j=0)prin tf("n");break;case 4:pr

11、intf(”请输入矩阵A的行数和列数(用逗号隔开):");sca nf("%d,%d", & i,&j);printf(”请输入矩阵A:n");for(p=0;p<i;p+)for(q=0;q<j;q+)sca nf("%f",&Apq);printf(” 输出矩阵 An");for(p=0;p<i;p+)for(q=0;q<j;q+)prin tf("%10.2f",Apq);if(q+1)%j=0)prin tf("n");for(p

12、=0;p<i;p+) / 转置for(q=0;q<j;q+)Bqp=Apq;printf(”输出矩阵A的转置矩阵:n");for(p=0;p<j;p+)for(q=0;q<i;q+) printf("%10.2f",Bpq);if(q+1)%i=0)printf("n");break;case 5:float aM2*M;float bN2*N;float t,x;int k,T;printf(" 输入方阵的维数: n"); / 请输入方阵,即行和列相等的矩阵。 scanf("%d"

13、;,&T);printf(" 请输入矩阵 :n"); for(i=0;i<T;i+) for (j=0;j<T;j+) scanf("%f",&bij);printf(" 原矩阵为: n");for (i=0;i<T;i+)for (j=0;j<T;j+)printf("%10.3f",bij);printf("n");for(i=0;i<T;i+)for(j=0;j<(2*T);j+) if (j<T) aij=bij;else if

14、(j=T+i)aij=1.0;elseaij=0.0;for(i=0;i<T;i+)for(k=0;k<T;k+)if(k!=i)t=aki/aii;for(j=0;j<(2*T);j+)x=aij*t; akj=akj-x;for(i=0;i<T;i+)t=aii;for(j=0;j<(2*T);j+) aij=aij/t;for(i=0;i<T;i+)y=y*aii;if(y=0)printf(" 对不起,您输入的矩阵没有逆矩阵,请重新输入。 n"); elsefor(i=0;i<T;i+)for(j=0;j<T;j+) bij=aij+T; printf(" 逆矩阵为: n");for (i=0;i<T;i+)for (j=0;j<T;j+)printf("%10.3f",bij);printf("n");break;case 6:;break;default:printf("n* 您选择错误,请重试 .*n");break;printf("# 再次感谢您使用本系统 ,合作愉快! #");printf("n");printf(*n");

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1