0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 117
1

Проверка после-ти чисел на возрастание или убывание

05.08.2020, 20:17. Показов 1867. Ответов 3
Метки нет (Все метки)

Вводятся минимум 1(не ноль) и более чисел. Ввод заканчивается если ввести 0. 0 членом послед-ти не яв-ся.

Я вроде как написал алгоритм но он с ошибками в логике. Например в 1 цикле do while условие неверное, но не пойму как поменять. Массивы, списки, векторы использовать нельзя.

Пример ввода: 1 2 2 5 5 2 3 0

Java
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import java.util.Scanner;
 
class Main {
    public static void main(String[] args) {
 
        Scanner scanner = new Scanner(System.in);
 
        int num1 = scanner.nextInt();
        int num2,num3,num4 = 1;
 
        int countNum = 1, count;
 
        boolean status = true,next = true;
 
        do {
            num2 = scanner.nextInt();
 
            if(num2 == 0)
            {
                ++countNum;
            }
 
        }while ( (num1 == num2) || (num2 != 0));
 
        if(countNum == 2)
        {
            System.out.print(status);
        }
        else
        {
            if(num2 > num1)
            {
                num3 = scanner.nextInt();
 
                if(num3 == 0)
                {
                    System.out.print(status);
                }
                else if(num3 < num2)
                {
                    status = false;
                }
                else
                {
                    while(num4 != 0)
                    {
                        num4 = scanner.nextInt();
 
                        if(num4 <= num2)
                        {
                            status = false;
                        }
                    }
                }
                System.out.print(status);
            }
            else
            {
                num3 = scanner.nextInt();
 
                if(num3 == 0)
                {
                    System.out.print(status);
                }
                else if(num3 > num2)
                {
                    status = false;
                }
                else
                {
                    while(num4 != 0)
                    {
                        num4 = scanner.nextInt();
 
                        if(num4 >= num2)
                        {
                            status = false;
                        }
                    }
                }
                System.out.print(status);
            }
        }
    }
}
Добавлено через 16 минут
Тема закрыта пока что. Решил этот говнокод удалить и заново начать
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2020, 20:17
Ответы с готовыми решениями:

Проверить последовательность чисел на возрастание или убывание
Нужно написать программу, которая проверит последовательность n чисел, введённой на клавиатуре, на...

Проверка сортировки массива на возрастание/убывание
Всем Привет! С Праздниками Всех! сделал программу и в ней 2 функции которые должны делать...

Возрастание или убывание
Определить, является ли массив возрастающей или убывающей последовательностью (через булевскую...

Возрастание или убывание элементов в массиве через процедуры
Добрый вечер! Помогите, пожалуйста! Даны три целочисленных массива длиной n, m, l (заполняются...

3
2322 / 1826 / 467
Регистрация: 17.02.2014
Сообщений: 8,937
05.08.2020, 20:36 2
Цитата Сообщение от poihgvc Посмотреть сообщение
заново начать
вот те для размышлений Не запускается метод nextLine
а вообще тут это решено 10 000 раз...
1
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 117
06.08.2020, 14:10  [ТС] 3
Aviz__, мне ненужно готовое решение

Добавлено через 47 секунд
задача решена вроде работает.
Java
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
57
58
59
60
61
62
63
64
65
import java.util.Scanner;
 
class Main {
    public static void main(String[] args) {
 
        Scanner scanner = new Scanner(System.in);
 
        int num1,num2,num3,num;
 
        int counter = 1;
 
        // status = true посл-ть не нарушена
        // stop = false было введено >= 2 разных чисел
        boolean status = true, stop = false;
 
        num1 = scanner.nextInt();
 
        do {
            num = scanner.nextInt();
 
            if(num == 0)
            {
                stop = true;
                break;
            }
 
        }while(num == num1);
 
        if(stop == true)
        {
            System.out.print(status);
        }
        else
        {
            if(num > num1) // возратающая посл-ть
            {
                while(num != 0)
                {
                    num1 = num;
                    num = scanner.nextInt();
 
                    if(status == true && num != 0)
                    {
                        status = num < num1 ? false : true;
                    }
                }
                System.out.print(status);
            }
            else // убывающая посл-ть
            {
                while(num != 0)
                {
                    num1 = num;
                    num = scanner.nextInt();
 
                    if(status == true && num != 0)
                    {
                        status = num > num1 ? false : true;
                    }
                }
                System.out.print(status);
            }
        }
    }
}
0
2322 / 1826 / 467
Регистрация: 17.02.2014
Сообщений: 8,937
06.08.2020, 16:24 4
Цитата Сообщение от poihgvc Посмотреть сообщение
мне ненужно готовое решение
так ведь про него и пишу, как ты прочел
Цитата Сообщение от Aviz__ Посмотреть сообщение
а вообще тут это решено 10 000 раз
вот, из них же:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Helper {
 
    public static void main(String[] args) {
        System.out.println(isSequenceGrowth("1 1 2 0"));
        System.out.println(isSequenceGrowth("1 2 2 5 5 2 3 0"));
    }
 
    private static boolean isSequenceGrowth(String strIntNums) {
        Scanner parser = new Scanner(strIntNums);
        int curr = parser.nextInt();
        int next;
        while (parser.hasNextInt() && (next = parser.nextInt()) != 0) {
            if (next < curr) return false;
            curr = next;
        }
        return true;
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2020, 16:24
Помогаю со студенческими работами здесь

Возрастание и убывание функции
Дана функция f(x)=xcos\frac{x}{2} найти где она возрастает и убывает на промежутке f'=\cos...

Возрастание и убывание в числе
Дано число, требуется отсортировать сначала по возрастанию а потом по убыванию цифры в нём

Возрастание, убывание и экстремумы
y=\frac{{x}^{3}}{1-{x}^{2}} x\neq\pm 1 y'=\frac{3-{x}^{2}}{-1-{x}^{2}} -1-{x}^{2}\neq 0 x=\pm...

Переделка с возрастание на убывание
Дана небольшая программа. Ввожу элементы одномерного массива. Выводятся они в порядке возрастания....

Возрастание и убывание функции в ряду
Дан ряд \sum_{n=1}^{oo} \frac{{(-1)}^{n+1}n^2}{(2n^2+1)} его ряд из модулей \sum_{n=1}^{oo}...

Исследовать на возрастание/убывание график
Добрый день! у меня есть график, который построен по точкам. По оси x время, по y данные с...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru