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

Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n - C++

Восстановить пароль Регистрация
 
goldstein
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 5
28.02.2014, 21:06     Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n #1
Код работает только для возрастающих чисел, а для убывающих выдаёт NO. Думаю, проблема с индексами в массиве, но как ни пробовал, ничего не получилось изменить. Заранее благодарю
Вот код:
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
#include "stdafx.h"
#include "stdio.h"
#include "locale.h"
#include "math.h"
 
long n;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    printf("Введите число: ");
    scanf_s("%ld", &n);
    long i, j;
    i = n;
    short counter = 0;
    short arr[11];
    for (int k = 0; i > 0; k++)//находим количество цифр числа n и заносим их в массив
    {
        j = i % 10;
        i /= 10;
        arr[k] = j;
        printf("\n%d", arr[k]);
        counter++;
    }
    printf("\n%d", counter);
    bool check_1, check_2;
    check_1 = check_2 = false;
    for (short k = 1; k <= counter; k++)
    {
        if (arr[k - 1] > arr[k])
            check_1 = true;
        else
            if (arr[k - 1] < arr[k])
                check_2 = true;
    }
    if (check_1&&!(check_2))//проверяем, убывают или возрастают цифры
        printf("\nВОЗР");
    else
        if (!(check_1)&&check_2)
            printf("\nУБЫВ");
        else
            printf("\nNO");
    scanf_s("%ld", &n);
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 21:06     Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n
Посмотрите здесь:

Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. C++
C++ Преобразовать матрицу А(mxn) таким образом чтобы строки с нечетным индексом были упорядочены по убыванию, а четные по возрастанию.
C++ Работа со списками (Проверить, упорядочены ли числа по возрастанию или по убыванию)
Для натурального числа определить истинность предиката «все цифры в записи числа равны» C++
C++ Напишите программу, которая определяет, упорядочены ли цифры числа по возрастанию
если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их C++ C++
C++ Дано натуральное n. Определить, упорядочены ли по возрастанию или по убыванию цифры в записи этого числа
Определить, упорядочены ли в массиве по возрастанию четные числа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
28.02.2014, 22:11     Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n #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
#include "stdafx.h"
#include "stdio.h"
#include "locale.h"
#include "math.h"
#include <stdlib.h>
long n;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    printf("Введите число: ");
    scanf_s("%ld", &n);
    long i, j;
    i = n;
    short counter = 0;
    short arr[11];
    for (int k = 0; i > 0; k++)//находим количество цифр числа n и заносим их в массив
    {
        j = i % 10;
        i /= 10;
        arr[k] = j;
        printf("%d ", arr[k]);
        counter++;
    }
    printf("\n%d", counter);
    bool check_1, check_2;
    check_1 = check_2 = true;
    for (short k = 1; k < counter; k++)
    {
        if (arr[k - 1] < arr[k])
            check_1 = false;
        if (arr[k - 1] > arr[k])
            check_2 = false;
    }
    if (check_1)//проверяем, убывают или возрастают цифры
        printf("\nВОЗР ");
    if (check_2)
        printf("\nУБЫВ\n");
    if (!check_1 && !check_2)printf("\nNO\n");
    system("pause");
    return 0;
}
Добавлено через 1 минуту
У тебя изначально check1 это false. И если хотя бы раз arr[k - 1] > arr[k], то у тебя check1 станет true. А нужно чтобы для всех пар соседних чисел это выполнялось.
goldstein
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 5
28.02.2014, 22:32  [ТС]     Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n #3
Спасибо!
Yandex
Объявления
28.02.2014, 22:32     Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n
Ответ Создать тему
Опции темы

Текущее время: 04:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru