Мне нужно найти первый ведущий элемент (первое число в строке, отличное от 0), который находится в наименьшем столбце.
Например, в матрице {(0, 2, 2), (2, 3, 5), (0, 2, 5)}
, ведущий элемент2: вторая строка, первый столбец.
В матрице {(0, 0, 6), (0, 0, 5), (0, 0, 2)}
ведущий элемент равен 6.
bool find_leading_elements(double a[][M], int n, int m, int *row, int *column) {
int i, j, first_j = 0, count = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
if (a[i][j] != 0)
first_j = min(first_j, j);
else
count++;
}
}
if (count == n * m)
return false;
else {
*row = i;
*column = first_j;
return true;
}
}
Я написал этот код, который правильно дает мне наименьший столбец, ноЯ не уверен, как получить правильный ряд.У вас есть какие-нибудь предложения?
Примечание: в min(first_j, j)
, min
- это просто функция, которая дает мне наименьший столбец каждый раз, когда я нахожу место без нуля.