C语言求任意两个矩阵相乘的算法(不同于大部分规格固定的矩阵乘法)

结果图如下   :
代码如下:
//----- 任意两个矩阵相乘
# include
int main (void)
{
  char ch;
  int a, b, c, d;
   printf ("此算法用于任意两个矩阵相乘  \n矩阵1(a行b列)乘以矩阵2(c行d列),请您按顺序输入a、b、c、d,中间以空格隔开:\n");
  scanf ("%d %d %d %d", &a, &b, &c, &d);
  
  while (b != c)
  {
      printf ("您输入的矩阵规格不能相乘,请重新输入。\n");
      printf ("矩阵1(a行b列)乘以矩阵2(c行d列),请按顺序输入a、b、c、d,中间以空格隔开:\n");
      scanf ("%d %d %d %d", &a, &b, &c, &d);
  }
  
  while ((ch = getchar()) != '\n')
          continue;
printf ("\n");
 int i, j;
  int f[100][100] = {0}; //100是随机大数,是算法能计算的矩阵上限
  int    g[100][100] = {0};
  int h[100][100] = {0};
 printf ("\n");
  
  for (i=0;i     {
      printf ("请输入矩阵1的第%d行数据,元素之间用空格隔开:\n", (i+1));
      
      for (j=0;j      {
          scanf ("%d", &f[i][j]);
      }
      
      while ((ch = getchar()) != '\n')
          continue;    
  }
  
  printf ("矩阵1为:\n");
  
  for (i=0;i     {
      for (j=0;j          printf ("  %-10d ", f[i][j]);//-10是指左对齐,每个数占10格
      printf ("\n");
  }
 printf ("\n");
  
  for (i=0;i
      printf ("请输入矩阵2的第%d行数据,元素之间用空格隔开:\n", (i+1));
     for (j=0;j
          scanf ("%d", &g[i][j]);
      }
      
      while ((ch = getchar()) != '\n')
          continue;    
  }
  
  printf ("矩阵2为:\n");
  
  for (i=0;i
      for (j=0;j
      printf ("\n");
  }
 printf ("\n");
  
  int k;
  for (i=0;i     {
      for (j=0;j
              h[i][j] = h[i][j] + f[i][k]*g[k][j];
          }
  }
  
  printf ("结果矩阵为:\n");
  
  for (i=0;i     {
      for (j=0;j
      printf ("\n");
  }
  
  return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站名称:C语言求任意两个矩阵相乘的算法(初学尝试矩阵乘法)-创新互联
分享链接:http://www.scyingshan.cn/article/djejdi.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 