hangfrieddays 发表于 2022-3-4 21:17:35

数组,scanf

4-4矩阵积的转置
问题描述       
输入M×K矩阵A和K×N矩阵B各元素值,计算矩阵A和矩阵B相乘的结果,并将乘积矩阵进行转置。
矩阵的相乘:设A为m×p的矩阵,B为p×n的矩阵,那么称m×n的矩阵C为矩阵A与B的乘积,其中矩阵C中的第i行第j列元素可以表示为:
如下:A=B=C=AB=
矩阵的转置:是指把m×n矩阵A的行换成同序数的列得到一个n×m矩阵,此矩阵叫做A的转置矩阵,写作AT。
例如矩阵经过转置后成为

输入说明
第一行给出正整数M、K、N(0<M、N、K<50),为A矩阵和B矩阵的行数和列数。接下来给出矩阵的信息,A矩阵信息:随后M行,每行给出K个整数,其间以空格分隔;B矩阵信息:随后K行,每行给出N个整数,其间以空格分隔。

输出说明
输出矩阵(A*B)T的结果,矩阵元素之间用空格分隔,数组每行元素用换行分隔。


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int m,k,n;
    scanf("%d%d%d",&m,&k,&n);
    int a;
    int b;
    for(int i=0;i<m;i++)
    {
      for(int j=0;j<k;j++)
      {
            scanf_s("%d",&a);//输入数组a
      }
    }

    for(int i=0;i<k;i++)
    {
      for(int j=0;j<n;j++)
      {
            scanf_s("%d",&b);//输入数组b
      }
    }
    int c;
    for(int i=0;i<m;i++)
    {
      for(int j=0;j<n;j++)
      {
            c=0;
            for(int s=0;s<k;s++)
            {
                c+=a*b;//矩阵相乘的赋值
            }
      }
    }
    for(int j=0;j<n;j++)
    {
      for(int i=0;i<m;i++)
      {
            printf("%d ",c);//输出矩阵(转置后)
      }
      printf("\n");
    }
    return 0;
}


请问为什么我b数组输入后无法正常赋值呢

大马强 发表于 2022-3-4 21:17:36

34 行有问题
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int m,k,n;
    scanf("%d %d %d",&m,&k,&n);
    int a;
    int b;
    printf("请输入数组A\n") ;
    for(int i=0;i<m;i++)
    {
      for(int j=0;j<k;j++)
      {
            scanf("%d",&a);//输入数组a
      }
    }
        printf("请输入数组B\n") ;
    for(int i=0;i<k;i++)
    {
      for(int j=0;j<n;j++)
      {
            scanf("%d",&b);//输入数组b
      }
    }
    int c;
    for(int i=0;i<m;i++)
    {
      for(int j=0;j<n;j++)
      {
            c=0;
            for(int s=0;s<k;s++)
            {
                c+=a*b;//矩阵相乘的赋值   ||||| 用k越界了
            }
      }
    }
    printf("打印转置矩阵\n") ;
    for(int j=0;j<n;j++)
    {
      for(int i=0;i<m;i++)
      {
            printf("%d ",c);//输出矩阵(转置后)
      }
      printf("\n");
    }
    return 0;
}

2 2 2
请输入数组A
1 2
3 4
请输入数组B
5 6
7 8
打印转置矩阵
19 43
22 50

hangfrieddays 发表于 2022-3-5 15:07:57

大马强 发表于 2022-3-5 10:53
34 行有问题

没注意,还以为是scanf的问题
页: [1]
查看完整版本: 数组,scanf