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

上传人:b****8 文档编号:9459462 上传时间:2023-05-19 格式:DOCX 页数:6 大小:57.68KB
下载 相关 举报
矩阵的运算程序C语言版.docx_第1页
第1页 / 共6页
矩阵的运算程序C语言版.docx_第2页
第2页 / 共6页
矩阵的运算程序C语言版.docx_第3页
第3页 / 共6页
矩阵的运算程序C语言版.docx_第4页
第4页 / 共6页
矩阵的运算程序C语言版.docx_第5页
第5页 / 共6页
矩阵的运算程序C语言版.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

矩阵的运算程序C语言版

矩阵的运算程序(C语言版)

#include

#defineM20

#defineN20

floatA[M][N];

floatB[M][N];

floatC[M][N];

inti,j,m,n,p,q;

floaty=1.0;

voidmain()

{

printf("###########################################\n");

printf("#####欢迎您使用矩阵函数包系统。

######\n");

printf("#####系统功能:

######\n");

printf("#####计算两个矩阵相加,相减;######\n");

printf("#####数乘矩阵;矩阵转置;求逆######\n");

printf("#####矩阵######\n");

printf("###########################################\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");

intx;

scanf("%d",&x);

switch(x)

{

case1:

{

printf("请输入矩阵A的行数和列数(用逗号隔开):

");

scanf("%d,%d",&i,&j);

printf("请输入矩阵B的行数和列数(用逗号隔开):

");

scanf("%d,%d",&m,&n);

if(i!

=m||j!

=n)

printf("***对不起,您输入的两个矩阵不能相加,请重试.***\n");

elseprintf("请输入矩阵A:

\n");

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("请输入一个实数:

\n");

scanf("%f",&k);

for(p=0;p

for(q=0;q

B[p][q]=k*A[p][q];

printf("输出k乘矩阵A的结果\n");

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%j==0)

printf("\n");

}

};break;

case4:

{

printf("请输入矩阵A的行数和列数(用逗号隔开):

");

scanf("%d,%d",&i,&j);

printf("请输入矩阵A:

\n");

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

printf("输出矩阵A\n");

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

for(p=0;p

for(q=0;q

B[q][p]=A[p][q];

printf("输出矩阵A的转置矩阵:

\n");

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%i==0)

printf("\n");

}

}

;break;

case5:

floata[M][2*M];

floatb[N][2*N];

floatt,x;

intk,T;

printf("输入方阵的维数:

\n");//请输入方阵,即行和列相等的矩阵。

scanf("%d",&T);

printf("请输入矩阵:

\n");

for(i=0;i

for(j=0;j

scanf("%f",&b[i][j]);

printf("原矩阵为:

\n");

for(i=0;i

{

for(j=0;j

printf("%10.3f",b[i][j]);

printf("\n");

}

for(i=0;i

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

{if(j

a[i][j]=b[i][j];

elseif(j==T+i)

a[i][j]=1.0;

else

a[i][j]=0.0;

}

for(i=0;i

{

for(k=0;k

{

if(k!

=i)

{

t=a[k][i]/a[i][i];

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

{

x=a[i][j]*t;

a[k][j]=a[k][j]-x;

}

}

}

}

for(i=0;i

{

t=a[i][i];

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

a[i][j]=a[i][j]/t;

}

for(i=0;i

y=y*a[i][i];

if(y==0)

printf("对不起,您输入的矩阵没有逆矩阵,请重新输入。

\n");

else

{

for(i=0;i

for(j=0;j

b[i][j]=a[i][j+T];

printf("逆矩阵为:

\n");

for(i=0;i

{

for(j=0;j

printf("%10.3f",b[i][j]);

printf("\n");

}

};break;

case6:

;break;

default:

printf("\n********您选择错误,请重试.********\n");

break;

}

printf("#########再次感谢您使用本系统,合作愉快!

############");

printf("\n");

printf("******************************************************************\n");

}

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2