C编程卡在计算矩阵(2D数组)

时间:2015-12-27 15:15:12

标签: c

假设Atable个浮点数,有k rowsm columnsB是浮点数的tablem rowsn columns。我们希望生成一个new table,C,其中C的每个元素由下式确定:

C[i][j] = A[i][1]*B[1][j]+ A[i][2]*B[2][j]+ ,..., A[i][m]*B[m][j]

where i = 1, 2, …, k and j = 1, 2, …, n

这就是我正在做的事情

#include <stdio.h>
#include <math.h>
int main()
{
float A[10][10], B[10][10], C[10][10];
int k, i, j, l, m, n;
printf("Enter the number of rows and columns of matrix A:\n");
scanf("%d%d",&k,&m);
printf("Enter elements of matrix A:\n");
for (i=0;i<k;i++)
    for (j=0;j<m;j++)
    scanf("%f",&A[i][j]);

printf("Enter the number of rows and columns of matrix B:\n");
scanf("%d%d",&m,&n);
printf("Enter elements of matrix N:\n");
for (i=0;i<m;i++)
    for (j=0;j<n;j++)
    scanf("%f",&B[i][j]);

在扫描了两个matrix之后,接下来我应该做些什么来计算C,这个让我感到困惑。我不知道我是否能够将AB扫描放入一个嵌套循环中。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

矩阵A的大小为kxm,矩阵B的大小为mxn .Resultant矩阵的大小为kxn。 所以你可以按如下所示启动for循环。

for (i=0;i<k;i++)
  for(j=0;i<n;j++)
  {
     //perform the desired operation in matrix C .
  }

请注意:您使用“m”两次。多余。

答案 1 :(得分:-1)

你可以尝试这样的东西,使用矩阵数而不是使用A,B,C。“row”和“col”用于存储矩阵的维度,通知col[0]应该等于{ {1}}。

row[1]