中易网

用C语言求任意两个矩阵的乘积的子程序

答案:1  悬赏:70  
解决时间 2021-04-27 17:22
输入矩阵的行数、列数和元素值,可以求得两矩阵乘积。
最佳答案

#include <stdio.h>
#include "stdlib.h"
void pr(int **a,int m,int n)
{
 int i,j;
 printf("\n");
 for(i=0;i<m;i++)
 {
  for(j=0;j<n;j++)printf("%5d",a[i][j]);
  printf("\n");
 }
 printf("\n");
}
void AB(int **a,int m1,int n1,int **b,int m2,int n2,int **c)
{
 int i,j,k;
 for(i=0;i<m1;i++)
  for(j=0;j<n2;j++)
   for(k=0;k<n1;k++)
    c[i][j]+=a[i][k]*b[k][j];
}


void main()
{
 int **a,**b,**c,m1,n1,m2,n2;
 int i,j;
 printf("输入第一个矩阵的行数列数:");
 scanf("%d%d",&m1,&n1);
 printf("输入第二个矩阵的行数列数:");
 scanf("%d%d",&m2,&n2);
 if(n1!=m2)
 {
  printf("第一个矩阵的列必须等于第二个矩阵的行数!");
  return;
 }
 //建立A矩阵
 a=(int **)calloc(m1,sizeof(int));
 for(i=0;i<m1;i++)
  a[i]=(int *)calloc(n1,sizeof(int));
 printf("A:输入%d个整数:",m1*n1);
 for(i=0;i<m1;i++)
  for(j=0;j<n1;j++)
   scanf("%d",&a[i][j]);
 //建立B矩阵
 b=(int **)calloc(m2,sizeof(int));
 for(i=0;i<m2;i++)
  b[i]=(int *)calloc(n2,sizeof(int));


 printf("B:输入%d个整数:",m2*n2);
 for(i=0;i<m2;i++)
  for(j=0;j<n2;j++)
   scanf("%d",&b[i][j]);
 //建立C矩阵
 c=(int **)calloc(m1,sizeof(int));
 for(i=0;i<m1;i++)
  c[i]=(int *)calloc(n2,sizeof(int));
 AB(a,m1,n1,b,m2,n2,c);
 printf("A:\n");
 pr(a,m1,n1);
 printf("B:\n");
 pr(b,m2,n2);
 printf("C=AB\n");
 pr(c,m1,n2);


}


我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在5173上买梦三国账号,没有身份证复印件,绑
金士百绿牌9度500毫升一箱多少瓶
去淘宝开店要具备什么?都要做点什么?
起诉保险公司需要什么手续???要走那些步骤
在徐州地区一个长1米的生态鱼缸大约多少钱呀
吴屯学校地址在哪,我要去那里办事
谁能把里面的分组的字弄清楚?
我有泡泡堂游戏账号怎样知道盛大通行证账号呢
文字游戏!应该是对子
现实的爱情是什么样的呢?
魔兽世界无法连接问题
在Rt△ABC中,∠C=90°,∠B=30°,AB=12cm。点D
怎样可以开心
如何饮食和锻炼才能长高,我个子太矮了,我不
我喜欢唱歌,我的梦想也只有唱歌会但每次我想
推荐资讯
恒寿科技园怎么去啊,有知道地址的么
在生活中甘油三酯偏高应该吃点什么,少吃什么
跑跑几时出新的摩托?
萧亚轩钻石糖新专辑里面赠送哪些礼物
广州G2000这两天哪里有打折啊?折扣店在哪?
手机建设银行登陆不上怎么办
老婆说让我给她点空间,她想静一静!我该怎么
给个梦幻诛仙的激活码
勤奋学习的名言警句有哪些
在中国为什么看不了日本网站的视频
翔升NF4N主板支持超频吗?如果支持怎么设置?
怎样使头发不再那么干燥?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?