Проверить, является ли последовательность арифметической прогрессией - C (СИ)
Формулировка задачи:
Даны натуральное N и последовательность, состоящая из N целых чисел.
Определить, является ли данная последовательность арифметической прогрессией.
Если не является, то вывести номер первого числа, нарушающего закономерность и
модуль разности первого и последнего элементов последовательности.
Решение задачи: «Проверить, является ли последовательность арифметической прогрессией»
textual
Листинг программы
int first, second, third, i, n, arith;
scanf("%d", &n);
if (n>2){
scanf("%d%d", &first, &second);
for (i=3, arith=1; i<=n && arith; ++i){
scanf("%d", &third);
arith = (first+third == second<<1);
first=second; second=third;
}
}
printf("Not arithmetic"+(arith?4:0));
Объяснение кода листинга программы
- Объявлены переменные: first, second, third, i, n, arith;
- Программа запрашивает у пользователя ввод количества элементов последовательности (n);
- Если n больше 2, то программа запрашивает у пользователя ввод первых трех элементов последовательности (first, second, third);
- Затем программа в цикле проходит по всем элементам последовательности, начиная с третьего, и проверяет является ли последовательность арифметической прогрессией;
- Для проверки используется формула (first+third == second<<1);
- Если последовательность является арифметической прогрессией, то выводится сообщение
Arithmetic, иначе выводится сообщениеNot arithmetic.