Я должен умножить определенную строку (я указываю, какая строка именно в 4-м аргументе функции) данной матрицы на число
Обычно «умножить строку матрицы на скаляр» означает умножить каждый элемент строки на определенное скалярное значение. Это не то, что делает опубликованная функция, она умножает index строки на переданный аргумент:
void multiply_matrixNx100_line_by_scalar(int mNx100[][MAXCOLS100], int lines, int columns,
int line, int scalar) {
for (int i = 0; i < lines; i++) { // <-- Useless, the row is known
for (int j = 0; j < columns; j++) {
if(i == line){
printf("%d\n", mNx100[i*scalar][j] );
// ^^^^^^^^
}
}
printf("\n");
}
}
Если целью является печать только измененной строки, предыдущая функция могла быпереписать как
void multiply_matrixNx100_line_by_scalar(int mNx100[][MAXCOLS100], int lines, int columns,
int line, int scalar) {
if (line < 0 || line >= lines)
return;
for (int j = 0; j < columns; j++) {
printf("%d\n", mNx100[line][j] * scalar);
}
printf("\n");
}
Если вместо этого предполагается, что функция изменяет только матрицу, не печатая ее, мы можем использовать
mNx100[line][j] *= scalar;
Внутри цикла вместо вызоваprintf
.