Сортировка строк динамического массива методом выбора

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?

→ Ссылка