Найти количество пар элементов массива, сумма которых нечётна и положительна - C (СИ)
Формулировка задачи:
Здравствуйте.Есть задача: Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых нечётна и положительна. Под парой подразумевается два подряд идущих элемента массива. я ее реализовал:
Пожалуйста помогите вывести количество таких пар.я все сделал но в чем-то ошибся.хз я на плюсах программирую и легче но тут запутался)) и еще как реализовать на C код подобный на C++:
?
#include <stdio.h> #include <conio.h> #include <locale.h> int main(void) { setlocale(LC_ALL, "Russian"); //русский язык в консоли int mymassive[20],i,j,k; for (i=1; i <= 20; i++) { //printf("Введите",'%i',"эл массива"); while (scanf_s("%d", &mymassive[i]) != 1 || mymassive[i]>10000 || mymassive[i]<-10000) { printf("Вышли из диапазона или некорректно ввели!Введите заново : "); fflush(stdin); } } for (k = 1; k <= 20-1; k++) { j = 0; if ((mymassive[k] + mymassive[k + 1])>0 || (mymassive[k] + mymassive[k + 1]) % 2 == 1) j++; } printf("%d", j); _getch(); //запрет автозакрытия консоли return 0; }
cout<<"Введите "<<n<<" элемент массива"<<endl;
Решение задачи: «Найти количество пар элементов массива, сумма которых нечётна и положительна»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE (20) #define MIN_VAL (-10000) #define MAX_VAL (10000) #define bounded_rand() ( rand() % ( MAX_VAL - MIN_VAL + 1 ) + MIN_VAL ) int main(void) { int array[SIZE], i, pairsCount; srand(time(NULL)); printf("ARRAY:\n"); for ( i = 0; i < SIZE; ++i ) printf("%d\n", ( array[i] = bounded_rand() )); for ( pairsCount = 0, i = 1; i < SIZE; ++i ) { int sum = array[i - 1] + array[i]; pairsCount += ( sum > 0 && sum & 1 ); } printf("%d pairs with positive odd sum.\n", pairsCount); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
stdio.h
- для работы с функциями ввода-вывода;stdlib.h
- для работы с функциейrand()
и операторомsizeof
;time.h
- для инициализации генератора случайных чисел.
- Определение констант:
SIZE
- размер массива;MIN_VAL
иMAX_VAL
- границы значений для генерации случайных чисел.
- Генерация случайных чисел в ограниченном диапазоне с помощью функции
bounded_rand()
. - Создание массива и инициализация его случайными числами с помощью цикла
for
и функцииprintf()
. - Инициализация счётчика пар с помощью переменной
pairsCount
и циклаfor
. - Проверка каждого элемента массива на нечётность и положительность суммы с помощью выражения
sum & 1
и условияsum > 0
. - Обновление счётчика пар с помощью оператора
+=
. - Вывод количества пар с помощью функции
printf()
. - Завершение программы с помощью оператора
return
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д