Найти количество промежутков постоянства среди чисел, введенных с клавиатуры - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д