Предположим, что A
является table
чисел с плавающей точкой, имеющей k
rows
и m
columns
, и B
является table
чисел с плавающей точкой, имеющей m
rows
и n
columns
. Мы хотим, чтобы сгенерировать new table
, C, где каждый элемент C определяется:программирования C застряли вычисления матрицы (2D массива)
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
, этот меня смущает. Я не знаю, могу ли я поместить оба сканирования A
и B
в один вложенный цикл. Любая помощь будет принята с благодарностью.
Вы используете 'm' дважды. Я думаю, вы имели в виду «l» в первый раз. –
О, это просто избыточный, я использовал m дважды, потому что число столбцов в A равно количеству строк в B –
«_ где i = 1, 2, ..., k и j = 1, 2, ..., n_» - Но индексы массива начинаются с 0 и заканчиваются на длине -1 в C. Вы имели в виду «где i = 0, 1, 2, ..., k-1 и j = 0, 1, 2, ..., n-1" ? –