永发信息网

编程实现任意两个矩阵的相乘

答案:2  悬赏:0  手机版
解决时间 2021-05-05 04:08
1.两个矩阵的行数和列数由用户在运行时输入
2.两个矩阵的元素由用户运行时输入
3.运算结果由系统输出
4.软件应能根据用户输入的矩阵的行数和列数产生矩阵的输入模型
最佳答案
#include<stdio.h>
#define M 10
#define N 10
void matrix(int a[M][N],int m,int n)
{
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
void comput(int a[M][N],int b[M][N],int c[M][N],int m1,int n1,int m2,int n2)
{
int i,j,k,sum;
for(i=0;i<m1;i++)
for(j=0;j<n2;j++)
{
sum=0;
for(k=0;k<n1;k++)
sum=sum+a[i][k]*b[k][j];
c[i][j]=sum;
}
}
void print(int c[M][N],int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%3d",c[i][j]);
printf("\n");
}
}
void main()
{
int m,n,r,p,a[M][N],b[M][N],c[M][N];
printf("输入第一个矩阵的行数与列数");
scanf("%d%d",&m,&n);
matrix(a,m,n);
printf("输入第二个矩阵的行数与列数");
scanf("%d%d",&r,&p);
matrix(b,r,p);
comput(a,b,c,m,n,r,p);
print(c,m,p);
}
全部回答

    #include"stdio.h"         #include"stdlib.h"

    main() {   int i,j,select,temp,t;    int m,n,k;    int a[20][20],b[20][20],c[20][20]={0};     int s;  while(1)          {     printf("\t******************************** \n");     printf("\t\tMatrix operations    \n");     printf("\t1:Input matrix    \n");     printf("\t2:Matrix addition operation \n");     printf("\t3:Matrix multiplication    \n");     printf("\t4:Matrix transpose operation\n");     printf("\t5:Display matrix\n    \n");     printf("\t6:Exit the system    \n");     printf("\t******************************** \n");     printf("please select:(one to seven)");     scanf("%d",&select);

 if(select==1)  {

  printf("please input the matrix line:");   scanf("%d",&m);   printf("please input the matrix list:");   scanf("%d",&n);   printf("please input the first matrix:\n");   for(i=0;i<m;i++)   for(j=0;j<n;j++)   scanf("%d",&a[i][j]);   printf("please input the scend matrix:\n");   for(i=0;i<m;i++)   for(j=0;j<n;j++)   scanf("%d",&b[i][j]);   }

 else if(select==2)  {   printf("Matrix addition operation is:\n");

   for(i=0;i<m;i++)   {    for(j=0;j<n;j++)   {    c[i][j]=a[i][j]+b[i][j];    printf("%d  ",c[i][j]);   }   printf("\n");     }

    while(1)     {   printf("\n1:Back to main menu  2:Exit the system : ");     scanf("%d",&temp);     if(temp==1)  break;     else if(temp==2)  exit(0);     printf("\n\t\tSorry Input error! please input\n");     }if(temp==1)  continue;     }  else if(select==3)  {if(m==n)  {   printf("Matrix multiplication is:\n");   for(i=0;i<m;i++)  {   for(j=0;j<m;j++)   {

   for(k=0;k<n;k++)

    c[i][j]=c[i][j]+a[i][k]*b[k][j];

  }  }  for(i=0;i<m;i++)  {   for(j=0;j<n;j++)    printf("%d  ",c[i][j]);   printf("\n");   }   }   else  printf("Sorry Input error!");     while(1)     {   printf("\n1:Back to main menu  2:Exit the system : ");     scanf("%d",&temp);     if(temp==1)  break;     else if(temp==2)  exit(0);     printf("\n\t\tSorry Input error! please input\n");     }     }   else if(select==4)  {   printf("Matrix transpose operation  is:\n");    for(i=0;i<m;i++)     for(j=0;j<n;j++)     c[j][i]=a[i][j];     for(i=0;i<n;i++)     {     for(j=0;j<m;j++)     printf("%4d ",c[i][j]);     printf("\n\n");     }     for(i=0;i<m;i++)     for(j=0;j<n;j++)     c[j][i]=b[i][j];     for(i=0;i<n;i++)     {     for(j=0;j<m;j++)     printf("%4d ",c[i][j]);     printf("\n");     }     while(1)     {   printf("\n1:Back to main menu  2:Exit the system : ");     scanf("%d",&temp);     if(temp==1)  break;     else if(temp==2)  exit(0);     printf("\n\t\tSorry Input error! please input\n");     }if(temp==1)  continue;     }    else if(select==5)     {   printf("the first matrix is:\n");   for(i=0;i<m;i++)   for(j=0;j<n;j++)   printf("%4d ",&a[i][j]);   printf("\n\n");   printf("the scend matrix is:\n");   for(i=0;i<m;i++)   {for(j=0;j<n;j++)    printf("%4d ",&b[i][j]);    printf("\n");    }

    while(1)     {   printf("\n1:Back to main menu  2:Exit the system : ");     scanf("%d",&temp);     if(temp==1)  break;     else if(temp==2)  exit(0);     printf("\n\t\tSorry Input error! please input\n");     }

    }     else if(select==6)  exit(0);     else   printf("Input error!\n");     getch();

    }     }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男男女女应该拿什么来衡量
可燃物能不能在液态氧中燃烧~!
最适合高二的数学资料有哪些?
名人名言英语怎么写,名人名言用英语怎么写
许嵩为什么偏偏模仿周杰伦?周杰伦有那么好吗
发布商品信息有什么规则?
12.9文艺表演、是跳民族舞好点那、还是跳现代
国足如果第三名算出线吗
现在什么网游游戏好玩??推荐几个,要人多的
怎样才能让自己的说话能力加强?比如:让别人
为什么我的QQ不显示在时间旁边?
青花瓷讲的是什么历史故事?
表示付出有回报的诗句,泰戈尔说过有关回报与
光明街/G201(路口)怎么去啊,有知道地址的么
cs1.5中跳上箱子怎么跳上去的?
推荐资讯
急急急急急急 生物
长虹小智玲手机是什么行号的
求一腾讯游戏人生的内测资格!!!
一道关于圆的问题
相爱多年,但最近由于时间的仓促没有机会去看
保定涿州有好伦哥吗?
天气一变化很容易感冒该怎么预防啊?
大石桥市金桥管理区黄大村村民委员会在哪里啊
个人公众号如何申请,公众号怎么申请原创的那
广州番禺周末游去那里好?
什么样的歌算是脑残啊???好奇怪···
顺达文考培训地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?