Во внешнем контуре k
начинается с 1
и идет вверх. Поэтому он никогда не получает значение 0
. А внутренний цикл требует row == 0
(в сочетании с col <= sizestr2
). Поэтому условие внутреннего цикла никогда не выполняется, поэтому внутреннее тело цикла никогда не выполняется.
Условное выражение определяет, когда цикл позволил выполнить, так что вы должны проверить, если переменная неотрицательное чтобы перекручивание:
int row;
int col;
for(int k = 1; k <= sizestr1; k++){
for(row = k, col = 1; row => 0 && col <= sizestr2; row-- , col++){
//logic here
}
}
В качестве альтернативы вы можете протестировать row
переменные для отрицательного значения внутри петля разорвать петлю соответственно:
int row;
int col;
for(int k = 1; k <= sizestr1; k++){
for(row = k, col = 1; col <= sizestr2; row-- , col++){
if(row < 0)
break; // terminate the inner loop
//logic here
}
}
'строка == 0 'это все дни s FALSE. –
'row' никогда не получает значение' 0'. Вы хотели написать 'row! = 0' вместо' row == 0'? –
Я предполагаю, что синтаксически корректно (что говорит ваш компилятор?), Но трудно понять логику, например переменную строку. Предположим, у вас есть важные предупреждения (неинициализированные переменные), которые дают ВАЖНЫЕ ошибки времени выполнения (алгоритмические). –