Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
YuninDen
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 14
#1

Упорядочен-ли массив по возрастанию? - C++

12.11.2011, 21:10. Просмотров 3290. Ответов 6
Метки нет (Все метки)

Добрый вечер, господа. Взываю к вашей помощи, яко сам столкнулся с непреодолимой трудностью. Вот собсна задача:
Написать программу, которая считывает линейный массив из файла, выводит его на экран и определяет, упорядочен ли он по возрастанию.

Заранее благодарю отозвавшихся.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2011, 21:10     Упорядочен-ли массив по возрастанию?
Посмотрите здесь:

Рекурсивная функция, логически проверяющая, что массив упорядочен по возрастанию - C++
Здравствуйте) Помогите, пожалуйста) Написать рекурсивную логическую функцию, которая проверяет что массив который передается в функцию...

Удалить из массива минимальное количество элементов, чтобы массив стал упорядочен по возрастанию - C++
Всем добрый день Задача Дан массив чисел, необходимо удалить из данного массива минимальное количество элементов, чтобы массив стал...

Сформировать массив, который упорядочен по возрастанию и представляет операцию разности с элементами массивов - C++
Даны два целочисленных одномерных массива. Сформировать третий одномерный массив на основе данных, который упорядочен по возрастанию и...

упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще - C++
Блин вест мозг себе уже вынес, никак не могу решить задачу(((. Помогите кто чем может. Задача:Написать подпрограмму,которая проверяла бы,...

Если введенный список упорядочен по возрастанию, то оставить его без изменения - C++
Построить линейный список из нескольких динамических переменных, содержащих вводимые целые числа. Если введенный список упорядочен по...

Проверить упорядочен ли массив - C++
Здравствуйте! Нужна ваша помощь, помогите написать программу. Условие: Дано натуральное число N и одномерный массив A1, A2...A(N)...

Проверить что массив упорядочен по невозрастанию - C++
Ввести массив из целых чисел (из 10 элементов) и проверить что он упорядочен по невозрастанию

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.11.2011, 21:25     Упорядочен-ли массив по возрастанию? #2
Вот вам проверка на упорядоченность:

C++
1
2
3
4
int Check(int *a, int n)
{
    return n < 2 ? 1 : (a[n - 2] > a[n - 1] ? 0 : Check(a, n - 1));
}
вызывайте так: if(Check(a, N))
LEQADA
Мастер кустарных методов
227 / 222 / 9
Регистрация: 09.11.2010
Сообщений: 680
12.11.2011, 21:29     Упорядочен-ли массив по возрастанию? #3
Thinker, а не прокомментируете, что там происходит?
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.11.2011, 21:33     Упорядочен-ли массив по возрастанию? #4
Цитата Сообщение от LEQADA Посмотреть сообщение
Thinker, а не прокомментируете, что там происходит?
Если элементов в массиве < 2, то массив упорядочен, за это отвечает проверка n < 2. Если данное условие выполнено, происходит выход из рекурсии и функция возвращает 1. В противном случае, проверяем, образуют ли элементы a[n-2] и a[n-1] инверсию. Если да, то прекращаем проверку и возвращаем 0, иначе спускаемся вниз по рекурсии.
mc.Duck
Заблокирован
12.11.2011, 22:54     Упорядочен-ли массив по возрастанию? #5
или можно так:

C++
1
2
3
4
5
6
7
8
9
int *a;                                                              //некий числовой массив
bool bol=true;                                                            //переменная упорядоченности
a=new int [10];
for(int i=1;i<=10;i++)
{
if(a[i]>a[i-1]) bol=true; else bol=false;
}
if(bol==false) cout<<"Упорядоченность нарушена!";
if(bol==true) cout<<"Упорядоченность впорядке!";
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.11.2011, 23:12     Упорядочен-ли массив по возрастанию? #6
mc.Duck, не верная логика, проанализируйте массивы
2 1 2
1 2 1
с помощью вашего алгоритма
Да и нумерация не верная. Да и упорядоченность по возрастанию нужна была

Если нравится итерация, то можно так:
C
1
2
3
4
5
6
7
int Check(int *a, int n)
{
   int i;
   for (i = 1; i < n && a[i-1] <= a[i]; i++)
      ;
   return i >= n;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 07:55     Упорядочен-ли массив по возрастанию?
Еще ссылки по теме:

Получить массив С(К), упорядоченный по возрастанию, путем слияния массивов A(N) и B(M), упорядоченных по возрастанию (K = N + M) - C++
Ребята выручите пожалуйста! Получить массив С(К), упорядоченный по возрастанию, путем слияния массивов A(N) и B(M), упорядоченных по...

Получить массив С(К). упорядоченный по возрастанию, путем слияния массивов A(N) и В(М). упорядоченных по возрастанию (К = N + М). - C++
Получить массив С(К). упорядоченный по возрастанию, путем слияния массивов A(N) и В(М). упорядоченных по возрастанию (К = N + М). ...

Массив: Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию. - C++
написать программы! Вот задания! Я болел и просто не успею все зделать! 1)Дан массив целых чисел. Воспользовавшись указателями,...

Включить новый элемент в массив, упорядоченный по возрастанию, с сохранением упорядоченности. (рандомный массив) - C++
1) Включить новый элемент в массив, упорядоченный по возрастанию, с сохранением упорядоченности. (рандомный массив)

Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию - C++
помогите решить задачу в с++ создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
YuninDen
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 14
13.11.2011, 07:55  [ТС]     Упорядочен-ли массив по возрастанию? #7
Спасибо за проверку на возрастание. поможите с полным кодом?
P.S. (вот моя прошла задача - здесь было необходимо открыть файл, считать из него строки, инвертировать их (последнюю строку сделать первой) и переписать в другой файл.
P.S.S Можно-ли её безболезненно переделать?
P,S.S.S правда по-ходу нет, т.к. придется использовать одномерный массив...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
#include <fstream>
 
using namespace std;
 
int main(int argc, char **argv)
{
        setlocale(LC_CTYPE,"Rus");
 
        cout << "Программа, инвертирующая исходный файл \n";
 
        string fileNameInput;
        cout << "Открываем файл: ";
        cin >> fileNameInput;
        cout << "Сохраняем в файл: ";
        string fileNameOutpit;
        cin >> fileNameOutpit;
        ifstream input(fileNameInput.c_str());
        ofstream output(fileNameOutpit.c_str());
        string str;
        list<string> _list;
        
        while (getline(input, str))
                _list.push_back(str);
        int count = _list.size();
        reverse(_list.begin(), _list.end());
        list<string>::iterator it = _list.begin();
        for( ; it != _list.end(); ++it)
                output << *it << endl;
        input.close();
        output.close();
        system("pause");
        return 0;
}
Yandex
Объявления
13.11.2011, 07:55     Упорядочен-ли массив по возрастанию?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru