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