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

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

Войти
Регистрация
Восстановить пароль
 
Золушка_я
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 79
#1

Последовательность упорядочена (не упорядочена) по возрастанию и упорядочена (не упорядочена) по убыванию - C++

29.06.2016, 23:18. Просмотров 202. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток! Очень прошу помочь написать правильно решение задачи.
Пользователь вводит положительное число. Нужно определить:
• является ли последовательность его цифр упорядоченной по возрастанию;
• является ли последовательность его цифр упорядоченной по убыванию.

Получилось определить по возрастанию, а по убыванию не пойму где делаю ошибку.
Всем заранее огромнейшее спасибо за помощь)) И вот собственно решение, но где-то ошибка.


#include <iostream>
using namespace std;

void main() {
setlocale(0, "rus");
int x, n;

cout << "Введите положительное число ";
cin >> n;

x = n % 10;
n /= 10;

bool yes = true;

while (n > 0)
{
if (n % 10 < x)
{
n /= 10;
continue;
}
yes = false;
break;
}
yes ?
cout << "Последовательность упорядочена по возрастанию" << endl:
cout << "Последовательность не упорядочена по возрастанию" << endl;
while (n > 0)
{
if (n % 10 > x)
{
n /= 10;
continue;
}
yes = false;
break;
}
yes ?
cout << "Последовательность упорядочена по убыванию" << endl
:
cout << "Последовательность не упорядочена по убыванию" << endl;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2016, 23:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Последовательность упорядочена (не упорядочена) по возрастанию и упорядочена (не упорядочена) по убыванию (C++):

Выяснить, по возрастанию или убыванию упорядочена указанная строка матрицы - C++
Написать функцию, проверяющую по возрастанию или убыванию упорядочена указанная строка двумерного массива. Упорядочить по возрастанию все...

Написать функцию проверяющую по возрастанию или убыванию упорядочена указанная строка двумерного массива - C++
Написать функцию проверяющую по возрастанию или убыванию упорядочена указанная строка двумерного массива. Упорядочить по возрастаниювсе...

Проверить упорядочена ли строка по убыванию (матрица) - C++
Должна возвратить строку, которая упорядочена по убыванию, не пойму в чем прокол. int MyMatrixFuncs::SortedLine(int** a, int N, int M)...

Оставить без изменения последовательность, если она упорядочена - C++
Даны целые числа а1...аn, где n - целое положительное число (n&lt;=100). Оставить без изменения последовательность, если она упорядочена по...

Дана матрица. получить массив b, присвоив его k-му элементу значение 1, если строка упорядочена.. - C++
Дана матрица. получить массив b, присвоив его k-му элементу значение 1, если строка упорядочена по убыванию и 0 - в противном случае. Вот...

Является ли последовательность цифр числа упорядоченной по возрастанию или по убыванию? - C++
Пользователь вводит положительное число. Определить является ли последовательность его цифр упорядоченной по возрастанию и является ли...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
30.06.2016, 16:28 #2
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
Пользователь вводит положительное число. Нужно определить:
•   является ли последовательность его цифр упорядоченной по возрастанию;
•   является ли последовательность его цифр упорядоченной по убыванию.
*/
 
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
 
template <class FI, class C>
bool is_sorted(FI first, FI last, C comp)
{
    if (first == last)
        return false;
    for (; first != last - 1; ++first)
        if (comp(*(first + 1), *first))
            return false;
    return true;
}
 
template <class FI>
bool is_sorted(FI first, FI last)
{
    return is_sorted(first, last, std::less<int>());
}
 
int main()
{
    setlocale(0, "rus");
 
    int n;
    std::cout << "Введите число: ";
    std::cin >> n;
 
    std::vector<int> digits;
    while (n > 0)
    {
        digits.push_back(n % 10);
        n /= 10;
    }
    std::reverse(digits.begin(), digits.end());
 
    if (is_sorted(digits.begin(), digits.end()))
        std::cout << "последовательность цифр является упорядоченной по возрастанию";
    else if (is_sorted(digits.begin(), digits.end(), std::greater<int>()))
        std::cout << "последовательность цифр является упорядоченной по убыванию";
    else
        std::cout << "последовательность цифр не упорядочена";
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
1
Золушка_я
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 79
30.06.2016, 19:44  [ТС] #3
John Prick, Извините, пожалуйста. В теме забыла указать, что нужно сделать через циклы (for, while и т.п.)
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
30.06.2016, 22:57 #4
Цитата Сообщение от Золушка_я Посмотреть сообщение
Извините, пожалуйста. В теме забыла указать, что нужно сделать через циклы (for, while и т.п.)
Здесь сделано через for
0
Namat
12 / 12 / 5
Регистрация: 02.12.2014
Сообщений: 35
01.07.2016, 00:02 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Золушка_я Посмотреть сообщение
Получилось определить по возрастанию
Введите последовательность: 12321 и удивитесь.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
int main() {
    setlocale(0, "rus");
    int x, n, tmp;
 
    cout << "Введите положительное число ";
    cin >> n;
 
    tmp = n;
    x = n % 10;
    n /= 10;
 
    bool yes = true;
 
    while (n > 0)
    {
        if (n % 10 < x)
        {
            x = n % 10;
            n /= 10;
            continue;
        }
        yes = false;
        break;
    }
    yes ?
                cout << "Последовательность упорядочена по возрастанию" << endl:
                        cout << "Последовательность не упорядочена по возрастанию" << endl;
 
    n = tmp;
    x = n % 10;
    n /= 10;
    yes = true;
 
    while (n > 0)
    {
        if (n % 10 > x)
        {
            x = n % 10;
            n /= 10;
            continue;
        }
        yes = false;
        break;
    }
    yes ?
                cout << "Последовательность упорядочена по убыванию" << endl
                        :
                        cout << "Последовательность не упорядочена по убыванию" << endl;
}
1
Золушка_я
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 79
01.07.2016, 01:06  [ТС] #6
John Prick, немного уточню. имела в виду, что без class, sorted и прочего. Просто мы это еще не проходили и соответственно я не поняла как работает программа. спасибо еще раз

Добавлено через 11 минут
Namat, спасибо вам большое))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2016, 01:06
Привет! Вот еще темы с ответами:

Оставить без изменений последовательность, если она упорядочена по не убыванию или по не возрастанию - C (СИ)
Ребят,я начинающая программистка) помогите решить задачу на С Даны действительные числа a1, …, a30. Оставить без изменений...

Оставить без изменения последовательность а1 - а30, если она упорядочена по возрастанию или по убыванию - Delphi
Даны действительные числа а1.....а30. Оставить без изменения последовательность а1.....а30, если она упорядочена по возрастанию или по...

Даны действительные числа а1.а30. Оставить без изменений последовательность, если она упорядочена по не убыванию и не возрастанию, иначе - удалить и - Pascal
Даны действительные числа а1...а30. Оставить без изменений последовательность, если она упорядочена по не убыванию и не возрастанию,...

Если последовательность упорядочена по не убыванию, то оставить ее без изменения - Turbo Pascal
Дано натуральное число n,действительные числа а1,...,аn (n&gt;2). если последовательность а1,...,аn упорядочена по не убыванию, то оставить ее...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.07.2016, 01:06
Ответ Создать тему
Опции темы

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