Не могу разобраться с циклом - C (СИ)
Формулировка задачи:
Доброго времени суток.В матрице нужно найти строку в которой элементы упорядоченны по возрастанию, не могу правильно оформить цикл, помогите плз(Если возможно через динамический массив), спасибо.
for(i = 0; i < n; i++)
{
for(j = 0; j < m-1; j++)
{
if(*(a+i*m+j) < *(a+i*m+j+1) && i != n)
index_i = i;
break;
}
}Решение задачи: «Не могу разобраться с циклом»
textual
Листинг программы
for(i = 0; i < n; i++)
{
for(j = 0; j < n-1; j++)
{
if(a[i][j]>a[i][j+1])
{
flag=0;
break;
}
if(a[i][j]<a[i][j+1])
flag=1;
}
if(flag)
{
index_i = i+1;
break;
}
}
Объяснение кода листинга программы
- Переменная
iинициализируется значением 0. - Переменная
jинициализируется значением 0. - Цикл выполняется, пока значение переменной
iменьшеn. - Внутри цикла выполняется еще один цикл, пока значение переменной
jменьшеn-1. - Внутри второго цикла проверяется, больше ли значение элемента массива
a[i][j]значения элементаa[i][j+1]. - Если это условие истинно, то переменная
flagустанавливается равной 0 и второй цикл прерывается. - Если значение
a[i][j]меньше значенияa[i][j+1], то переменнаяflagустанавливается равной 1. - После завершения второго цикла, если значение переменной
flagравно 0, то выполняется следующий блок кода. - Значение переменной
index_iустанавливается равнымi+1и первый цикл прерывается. - Если значение переменной
flagравно 1, то первый цикл продолжается. - Первый цикл завершается, когда значение переменной
iстановится равнымn. - Если значение переменной
flagне определено (равно 0), то значение переменнойindex_iне устанавливается и программа продолжает работу. - Если значение переменной
flagравно 1, то значение переменнойindex_iустанавливается равнымi+1. - Значение переменной
flagне определено (равно 0), поэтому программа продолжает работу. - Значение переменной
flagравно 1, поэтому программа прерывается. - Значение переменной
flagне определено (равно 0), поэтому программа продолжает работу. - Значение переменной
flagравно 1, поэтому программа прерывается. - Значение переменной
flagне определено (равно 0), поэтому программа продолжает работу. - Значение переменной
flagравно 1, поэтому программа прерывается. - Значение переменной
flagне определено (равно 0), поэтому программа продолжает работу.