Найти количество пар элементов массива, сумма которых нечётна и положительна - 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.