- # include <stdio.h>
- # define X 3
- # define Y 3
- /**********输出数组*******/
- void prt(int a[X][Y])
- {
- int i,j;
- for(i=0;i<X;i++)
- {
- for(j=0;j<Y;j++)
- printf(" %5d",a[i][j]);
- printf("\\n");
- }
- }
- /************输入数组*********/
- void inp(int a[X][Y])
- {
- int i,j,t;
- for(i=0;i<Y;i++)
- for(j=0;j<Y;j++)
- {
- printf("a[%d][%d]=",i,j);/**提示输入第几个矩阵元素 ****/
- scanf("%d",&t);
- a[i][j]=t;
- }
- }
- /********矩阵加,结果保存于c[][]*********/
- void madd(int a[X][Y],int b[X][Y],int m[X][Y])
- {
- int i,j;
- for(i=0;i<X;i++)
- for(j=0;j<Y;j++)
- m[i][j]=a[i][j]+b[i][j];/***矩阵加****/
- prt(m);
- }
- /********矩阵减,结果保存于c[][]****/
- void msub(int a[X][Y],int b[X][Y],int m[X][Y])
- {
- int i,j;
- for(i=0;i<X;i++)
- for(j=0;j<Y;j++)
- m[i][j]=a[i][j]-b[i][j];/***矩阵减****/
- prt(m);
- }
- /*******矩阵乘,结果保存于c[][]******/
- void mmul(int a[X][Y],int b[X][Y],int m[X][Y])
- {
- int i,j,k;
- for(i=0;i<X;i++)
- for(j=0;j<Y;j++)
- m[i][j]=0;
- for(i=0;i<X;i++)
- for(j=0;j<Y;j++)
- for(k=0;k<Y;k++)
- m[i][j]+=a[i][k]*b[k][j];/***矩阵乘****/
- prt(m);
- }
- int main()
- {
- int sel=0,agn=1,cpt=1;
- int a[X][Y], b[X][Y], m[X][Y];
- while(agn==1)
- {
- printf("请输入矩阵a!\\n");
- inp(a);
- printf("请输入矩阵b!\\n");
- inp(b);
- while (cpt==1)
- {
- printf("请选择矩阵运算:[1]+ [2]- [3]*\\n\\t");
- scanf("%d",&sel);
- if (sel==1) madd(a,b,m);
- if (sel==2) msub(a,b,m);
- if (sel==3) mmul(a,b,m);
- printf("重新运算?[1]是 [0]否");
- scanf("%d",&cpt);
- }
- printf("是否重新输入矩阵?[1]是 [0]否");
- scanf("%d",&agn);
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/070820135024.html
来源: http://www.codesnippet.cn/detail/070820135024.html