Найти количество промежутков постоянства среди чисел, введенных с клавиатуры - C (СИ)
Формулировка задачи:
Друзья,совсем с недавних пор изучаю Си, и хотел попросить помощи в решении следующей задачи:
Нужно найти кол-во промежутков постоянства среди чисел, введенных с клавиатуры.
Это нужно сделать без помощи массивов и функций, имея только циклы и условия.
Я не понимаю, как сделать, чтобы он считал эти промежутки. Пусть идет ряд чисел 5 1 2 2 4 3 3 3 7
Вводимые числа я задал переменной а.
Что нужно сделать дальше? Если бы у нас только 2 числа шли подряд, мы бы записали это условие в цикле и поставили бы счетчик, например k++ . Где k - то самое количество промежутков, но если будет 3 числа подряд, он считает там как 2 промежутка и т.д.
Можно задать первые 2 или 1 число из вводимых еше до цикла, а цикл for начать с i=2 , но что делать дальше?Как сравнивать с ними не могу догадаться?
Или же здесь вообще стоит использовать while, а может и цикл в цикле?
Помогите пожалуйста,спасибо!
Решение задачи: «Найти количество промежутков постоянства среди чисел, введенных с клавиатуры»
textual
Листинг программы
- #include <stdio.h>
- #define false 0
- #define true 1
- #define bool char
- int main()
- {
- int input, // прочтённое число
- prev_num = 0x80000000, // предыдущее число
- dup_count = 0; // количество промежутков
- bool in_dup = false; // мы внутри промежутка
- /* читаем числа со стандартного ввода до ошибки (не число, например) *
- * или до конца файла (Ctrl+Z если поток идёт с терминала) */
- while( scanf( "%d", &input ) && !feof( stdin ) )
- {
- if( prev_num == input ) // если предыдущее число равно только что прочтённому
- in_dup = true; // то мы внутри промежутка
- else if( in_dup ) // если предыдущее число НЕ равно только что прочтённому И мы внутри промежутка
- {
- in_dup = false; // мы больше не внутри промежутка
- dup_count++; // увеличить счётчик промежутков
- }
- prev_num = input;
- }
- if( in_dup ) dup_count++;
- printf( "%d", dup_count );
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д