часть else X = minX;
не имеет особого смысла.Это может привести к бесконечному циклу, потому что вы устанавливаете обратно значение переменной цикла X
на более низкое значение.
Ваш код завершится только в том случае, если не более 1 столбца содержит ненулевое значение (при условии, что вы инициализировали minX какбольшое значение).
Например, предположим, что столбцы X=0
и X=1
содержат где-то ненулевое значение.Затем, когда он достигает ненулевого значения в столбце 0, значение minX
устанавливается равным 0. Затем позже оно достигает ненулевого значения с помощью X=1
, замечая, что minX>X
ложно, и устанавливает X обратно в 0. И повторяется вечно.