task20
unknown
c_cpp
2 years ago
2.0 kB
5
Indexable
#include <iostream> #include <locale.h> /* 20. Дан целочисленный массив размерности n. Определить является ли последовательность элементов, находящаяся между первым нечетным элементом массива и последним нечетным элементом массива, арифметической прогрессией. Выдать сообщение, если в массиве нет такой последовательности. */ bool checkArithmeticProg(int* a, int begin, int end) { int d = a[begin + 2] - a[begin + 1]; for (int i = begin + 1; i < end - 1; i++) { if (a[i + 1] - a[i] != d) return false; } return true; } void firstAndLastOddNumber(int* a, int n, int &l, int &r) { l = 0; r = n - 1; for (int i = 0; i < n; i++) { if (a[i] % 2 == 1) { l = i; break; } } for (int i = n-1; i > l; i--) { if(a[i] % 2 == 1){ r = i; return; } } } int main() { setlocale(LC_ALL, ""); int n; printf("Введите количество элементов n: "); scanf_s("%d", &n); int* arr = new int[n]; printf("Введите элементы массива:"); for (int i = 0; i < n; i++) scanf_s("%d", &arr[i]); int left, right; firstAndLastOddNumber(arr, n, left, right); if (right - left < 2) printf("Последовательности нет.\n"); else { if (checkArithmeticProg(arr, left, right)) printf("Последовательность между первым и последним нечётными элементами массива является арифметической прогрессией.\n"); else printf("Последовательность между первым и последним нечётными элементами массива НЕ является арифметической прогрессией.\n"); } return 0; }
Editor is loading...
Leave a Comment