C语言求任意两个矩阵相乘的算法(初学尝试矩阵乘法)-创新互联

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

创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站设计制作、做网站,塑造企业网络形象打造互联网企业效应。

结果图如下   :faf468062e604aa9a66b70652a9d6a46.jpg

代码如下:

//----- 任意两个矩阵相乘
# 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 ("  %-10d ", g[i][j]);//-10是指左对齐,每个数占10格
     printf ("\n");
 }

 printf ("\n");
 
 int k;

 for (i=0;i     {
     for (j=0;j          for (k=0;k          {
             h[i][j] = h[i][j] + f[i][k]*g[k][j];
         }
 }
 
 printf ("结果矩阵为:\n");
 
 for (i=0;i     {
     for (j=0;j          printf ("  %-10d ", h[i][j]);//-10是指左对齐,每个数占10格
     printf ("\n");
 }
 
 return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文题目:C语言求任意两个矩阵相乘的算法(初学尝试矩阵乘法)-创新互联
文章出自:http://pwwzsj.com/article/djejdi.html