1

Тема: Перевірка впорядкованості елементів одновимірного масиву

Почала тільки недавно розбиратися з масивами і сортуванням, тому хочу допомоги, щоб добре зрозуміти дану тему.

Маю завдання:"Дано довільний одновимірний масив цілих чисел. З’ясувати, чи є він упорядкованим. Відповідь сформулювати: «Yes >>» – якщо масив є упорядкованим за зростанням, «Yes <<» – якщо масив є упорядкованим
за спаданням або «No».".
Частину зробила, але сумніваюсь у правильності, адже вивід не такий, як потрібно.

Мій код:

#include <iostream>
#include <stdio.h>
#define MAX 50
int main()
{
    unsigned int i, j, n = 0;
    int m[MAX], t;
    do
    {
        printf("m[%i]=", n);
        scanf_s("%i", &m[n]);
    }
    while ((m[n++]) && (n != MAX));
    n = (m[n-1]) ? n : --n;
    for (i = 0; i < n-1; i++) 
        for (j = 0; j < n - i - 1; j++)
        {
            if (m[j + 1] < m[j]) 
            {
                t = m[j];
                m[j] = m[j + 1];
                m[j + 1] = t;
                printf("Yes >>");
            }
            else if (m[j] > m[j + 1]) 
            {
                t = m[j + 1];
                m[j + 1] = m[j];
                m[j] = t;
                printf("Yes<<");
            }
            else
                printf("No");
        }
}

Поясніть, будь ласка, в чому тут моя помилка..

2

Re: Перевірка впорядкованості елементів одновимірного масиву

спочатку ретельно перечитай завдання, потім визначся з мовою, потім - з алгорітмом. і вже потім починай писати код

3

Re: Перевірка впорядкованості елементів одновимірного масиву

Можу пояснити, як я думаю.. В циклі я перевіряю умову: якщо масив по зростанню, то виводжу Yes >>, якщо масив по спаданню, то Yes<<, в іншому випадку - No.. хіба в мене неправильний хід думок?

4

Re: Перевірка впорядкованості елементів одновимірного масиву

яку умову?

5

Re: Перевірка впорядкованості елементів одновимірного масиву

наскільки я розумію, спочатку перевіряю умову, чи наступний елемент масиву менший за поточний елемент

6

Re: Перевірка впорядкованості елементів одновимірного масиву

У вас програма динамщиця. Спочатку йес, йес, йес, а потім в найцікавіший момент ноуууу.

7

Re: Перевірка впорядкованості елементів одновимірного масиву

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

8

Re: Перевірка впорядкованості елементів одновимірного масиву

Akos_Bond написав:

наскільки я розумію, спочатку перевіряю умову, чи наступний елемент масиву менший за поточний елемент

і що це змінює?

9

Re: Перевірка впорядкованості елементів одновимірного масиву

я думаю, що треба перевірити той масив: чи він відсортований за зростанням, чи за спаданням, чи взагалі не посортований

10

Re: Перевірка впорядкованості елементів одновимірного масиву

це загальне завдання, я запитав що змінює той факт, що наступний елемент менший за поточний

11

Re: Перевірка впорядкованості елементів одновимірного масиву

можливо, я не до кінця розумію ваше запитання.. нам потрібно перевіряти умову, якщо наступний елемент менший за поточний, для того, щоби відсортувати за зростанням масив

12

Re: Перевірка впорядкованості елементів одновимірного масиву

а нащо його сортувати?

13

Re: Перевірка впорядкованості елементів одновимірного масиву

Akos_Bond написав:

можливо, я не до кінця розумію ваше запитання.. нам потрібно перевіряти умову, якщо наступний елемент менший за поточний, для того, щоби відсортувати за зростанням масив

Так але саме по собі знання того що поточний елемент більший чи менший від наступного нічого вам не дасть. От я ніби також недуже прошарений , але мені здається що найлегше з конструкцією switch то зробити.

14

Re: Перевірка впорядкованості елементів одновимірного масиву

справді, я не впевнена, що потрібно сортувати, але потрібно перевірити, чи є взагалі масив відсортований чи ні.. я не могла здогадатись, як це зробити, тому вирішила прописати таким чином..

а що стосується оператора switch, то в мене в коледжі нас навчали його використовувати при виборі варіанта, наприклад, коли прописувати вручну або автоматично за допомогою рандому

15

Re: Перевірка впорядкованості елементів одновимірного масиву

pluszz написав:
Akos_Bond написав:

можливо, я не до кінця розумію ваше запитання.. нам потрібно перевіряти умову, якщо наступний елемент менший за поточний, для того, щоби відсортувати за зростанням масив

Так але саме по собі знання того що поточний елемент більший чи менший від наступного нічого вам не дасть. От я ніби також недуже прошарений , але мені здається що найлегше з конструкцією switch то зробити.

Не пиши дурні, це є ключовий момент

16 Востаннє редагувалося plusxx (30.12.2019 22:03:30)

Re: Перевірка впорядкованості елементів одновимірного масиву

ur_naz написав:
pluszz написав:
Akos_Bond написав:

можливо, я не до кінця розумію ваше запитання.. нам потрібно перевіряти умову, якщо наступний елемент менший за поточний, для того, щоби відсортувати за зростанням масив

Так але саме по собі знання того що поточний елемент більший чи менший від наступного нічого вам не дасть. От я ніби також недуже прошарений , але мені здається що найлегше з конструкцією switch то зробити.

Не пиши дурні, це є ключовий момент

Чому дурні?

17

Re: Перевірка впорядкованості елементів одновимірного масиву

Програма робить щось беззмістовне: в кожному повторі циклу виводиться результат (що треба робити один раз укінці) і навіщось обмінюються елементи (що мало б сенс, якби масив треба було відсортувати, але тут його треба лише перевірити на впорядкованість). Потім, навіщось вкладені цикли (для чого? Це ж одновимірний масив, і порівнювати вам треба лише пари сусідніх елементів). Коротше, виглядає як недоперероблена програма сортування, з якої ви намагаєтесь зробити те, про що сказано в умові задачі. Раджу стерти все, що йде після циклу вводу, і спробувати написати з нуля — код програми сортування вам лише заважає, я не знаю, як його виправити, щоб програма сортування стала програмою перевірки впорядкованості.

18

Re: Перевірка впорядкованості елементів одновимірного масиву

plusxx написав:

Чому дурні?

тому що згідно умови це ключовий і єдиний показник, який треба перевіряти

19

Re: Перевірка впорядкованості елементів одновимірного масиву

Спробую пояснити: масив {1,2,3} відсортований за зростанням; масив {3,2,1} відсортований за спаданням, масив {2,1,3} не відсортований узагалі; масив з одного елемента за визначенням відсортований і за зростанням, і за спаданням. Тепер зрозуміли, чого від вас хочуть?

20

Re: Перевірка впорядкованості елементів одновимірного масиву

ur_naz написав:
plusxx написав:

Чому дурні?

тому що згідно умови це ключовий і єдиний показник, який треба перевіряти

Треба провіряти поки елемент m[j] більше m[j+1] (або навпаки меньше) якщо умова не виконується то break, std::cout<<"No";
Але ось якшо масив {1,1,2,3,3,3,4,6,7,8,8}