Сортировка строк динамического массива методом выбора
int col = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] != 0) {
col++;
}
if (col == m) {
for (i = 0; i < n; i++) {
for (int j1 = 0; j1 < m; ++j1) {
int pos = j1;
int tmp = matrix[i][pos];
for (j = j1 + 1; j < m; ++j) {
if (matrix[i][j] < tmp) {
pos = j;
tmp = matrix[i][j];
}
}
matrix[i][pos] = matrix[i][j1];
matrix[i][j1] = tmp; // меняем местами наименьший с a[j1]
}
}
}
}
}
Данный кусочек кода должен сортировать по возрастанию элементов строк те строки в матрице, где нет нулевых элементов (если есть хоть один - оставлять строку неизменной). Но на деле он сортирует все строки, не могу понять, в чем я ошибаюсь, подскажите, пожалуйста, заранее спасибо! Сортировка методом выбора.
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Переставьте обнуление col внутрь первого цикла
И зачем нужен второй цикл по i?