zhuabashou1 2021-09-24 10:40 采纳率: 0%
浏览 38

写了一个二阶矩阵乘法的程序,自己用程序里面的公式手算了几个没问题,但是程序运行结果有几个是错的



```c++


void matrix_multiply( int *m1,int *m2,int *r,int x,int y,int z)
{
    int buf3[x][z];
    int *p1,*p2,*r1;
    int i=0,j,k,l;
    int temp=0;
    p1=m1;
    p2=m2;
    r1=&buf3[0][0];
   
   

   for(i=1;i<=x;i++)
   {
       for(j=1;j<=z;j++)
       {
           
            for(k=1;k<=y;k++)    
            
        {
            *(r1+(i-1)*z+(j-1))=*(r1+(i-1)*z+(j-1))+(*(p1+(i-1)*y+(k-1))*(*(p2+(k-1)*z+(j-1))));
         } 
       }
   }
for(i=0;i<(x*z);i++)
{
    printf("%d is r1\n",*(r1+i));
        
}


    
}





int main()
{
  /* float  a;
    printf("please enter your salary number\n");
    scanf("%f",&a);
    printf("%f  is a\n",a);
    single_tax(a);*/
    int buf4[3][4];
    int buf1[3][2]={ 2,-6,3,5, 1,-1};
    int buf2[2][4]={4,-2,-4,-5,-7,-3,6, 7};
    matrix_multiply(*buf1,*buf2,*buf4,3,2,4);
    
    
}

```

  • 写回答

2条回答 默认 最新

  • zhuabashou1 2021-09-24 10:47
    关注

    运行结果是:50 14 20 -52
    -19 -21 4200499 20
    807499 1 -695122009 32751
    正确结果是: 50 14 -44 -52
    -23 -21 18 20
    11 1 -10 -12

    评论

报告相同问题?

问题事件

  • 创建了问题 9月24日

悬赏问题

  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格
  • ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)