白兰鸽. 2020-12-17 21:21 采纳率: 0%
浏览 29

C语言计算并输出矩阵乘法的程序,运行结果有问题,能告诉我错误在哪里吗?非常感谢!!!

#include<stdio.h>
int main()
{
    int m,l,n;
    int i,j,k;
    void matrix(double *a,double *b,int m,int l,int n,double *c);
    double a[m][l],b[l][n];

    printf("请输入第一个矩阵的行数和列数\n");
    scanf("%d%d",&m,&l);
    printf("请继续输入第一个矩阵\n");
    for(i=0;i<m;i++){
        for(j=0;j<l;j++)
            scanf("%lf",a[i]+j);}
    printf("第一个矩阵为:\n");
    for(i=0;i<m;i++){
        for(j=0;j<l;j++){
            printf("%10.2lf",*(a[i]+j));
        }
        printf("\n");
    }

    printf("请输入第二个矩阵的列数\n");
    scanf("%d",&n);
    printf("请继续输入第二个矩阵\n");
    for(i=0;i<l;i++){
        for(j=0;j<n;j++)
            scanf("%lf",a[i]+j);}
    printf("第二个矩阵为:\n");
    for(i=0;i<l;i++){
        for(j=0;j<n;j++){
            printf("%10.2lf",*(b[i]+j));
        }
        printf("\n");
    }

    printf("第一个矩阵为:\n");
    for(i=0;i<m;i++){
        for(j=0;j<l;j++){
            printf("%10.2lf",*(a[i]+j));
        }
        printf("\n");
    }
    printf("第二个矩阵为:\n");
    for(i=0;i<l;i++){
        for(j=0;j<n;j++){
            printf("%10.2lf",*(b[i]+j));
        }
        printf("\n");
    }

    printf("矩阵乘法运算结果为:\n");
    double c[m][n];
    matrix(*a,*b,m,l,n,*c);
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            printf("%10.2lf",*(c[i]+j));
        }
        printf("\n");
    }
    return 0;
}

void matrix(double *a,double *b,int m,int l,int n,double *c)
{
    int i,j,k;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            for(k=0;k<l;k++)
            {
                *(c+i*n+j)=*(c+i*n+j)+*(a+i*l+k)*(*(b+k*n+j));
            }
        }
    }
}
  • 写回答

2条回答 默认 最新

  • qq_43425376 2020-12-17 21:36
    关注

    你自己单步跟踪一下,

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置