c语言如何计算矩阵乘法,如何计算C语言矩阵乘法

缺少大括号。

for (i = 0; i < row1; i++) {

for (j = 0; j < col2; j++) { // added brace

suma = 0;

for (l = 0; l < row2; l++) { // added brace

suma += a[i][l] * bt[l][j];

} // added brace

c[i][j] = suma;

} // added brace

}

在里面的括号并不是绝对必要但如果你总是使用大括号,你不太可能在将来这个特殊的错误。

如果没有括号,它看起来像这样,正确的缩进:

for (i = 0; i < row1; i++) {

for (j = 0; j < col2; j++)

suma = 0;

// Note that j = col2, which means that we are accessing

// array elements out of bounds, which is an error.

for (l = 0; l < row2; l++)

suma += a[i][l] * bt[l][j];

c[i][j] = suma;

}

这是更显然是错误的。使不太可能错误的另一种方式是将环路中的变量:

for (int i = 0; i < row1; i++) {

for (int j = 0; j < col2; j++) {

double suma = 0;

for (int l = 0; l < row2; l++) {

suma += a[i][l] * bt[l][j];

}

c[i][j] = suma;

}

}

这样一来,如果去掉括号,你会因为j没有定义得到一个错误。 (这在C90中不起作用,但这是近代的古老历史。)

你可能感兴趣的:(c语言如何计算矩阵乘法)