Проверка массива на упорядоченность

275
30 ноября 2017, 02:25
void Sorted(int arr[], int size)
{
     for (int i=0; i < size; i++) 
     {
         if (arr[i] > arr[i + 1])
         cout << "Array is not ordered" << ends;
         else
         cout << "Array is ordered" << ends;
         break;
     }
}

Не правильно работает проверка массива на упорядоченность по возрастанию, где ошибка?

Answer 1

Я бы это отредактировал так:

void Sorted(int arr[], int size)
{
    for (int i=0; i < size - 1; i++)
    {
         if (arr[i] > arr[i + 1])
         {
            cout << "Array is not ordered" << ends;
            return;
         }
    }
    cout << "Array is ordered" << ends;
}

Обратите внимание, что условие продолжения цикла i < size - 1 (иначе выйдете за границу массива на i+1), кроме того break заменен на return. А в вашем варианте break срабатывал после первой же итерации, что неверно (цикл не доходил до конца).

READ ALSO
Переменное число аргументов

Переменное число аргументов

Объясните, как работает передаче переменного количества значений в прототипе функции f? Почему тут явно указан тип S, в то время когда в других...

183
Вывод двух массивов

Вывод двух массивов

Есть исходный и отсортированный массивыСначала у меня выводятся оба массива, но если элементов в массиве меньше 8, то вывести их повторно,...

175
Рисование в консоли Visual Studio c++

Рисование в консоли Visual Studio c++

Учился писать код в паскалеПо ходу учебы перешел на с++ и Visual Studio

260
Можно ли сделать Bottom Sheet выдвигающимся за свайпом?

Можно ли сделать Bottom Sheet выдвигающимся за свайпом?

Нужно чтобы фрагмент вытягвался снизу экрана за движением пальцаМожно ли это сделать с помощью Bottom Sheet и если да, то как? (android

157