Найти количество пар элементов массива, сумма которых нечётна и положительна - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте.Есть задача: Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых нечётна и положительна. Под парой подразумевается два подряд идущих элемента массива. я ее реализовал:
#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;
}
Пожалуйста помогите вывести количество таких пар.я все сделал но в чем-то ошибся.хз я на плюсах программирую и легче но тут запутался)) и еще как реализовать на C код подобный на C++:
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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек:
    • stdio.h - для работы с функциями ввода-вывода;
    • stdlib.h - для работы с функцией rand() и оператором sizeof;
    • time.h - для инициализации генератора случайных чисел.
  2. Определение констант:
    • SIZE - размер массива;
    • MIN_VAL и MAX_VAL - границы значений для генерации случайных чисел.
  3. Генерация случайных чисел в ограниченном диапазоне с помощью функции bounded_rand().
  4. Создание массива и инициализация его случайными числами с помощью цикла for и функции printf().
  5. Инициализация счётчика пар с помощью переменной pairsCount и цикла for.
  6. Проверка каждого элемента массива на нечётность и положительность суммы с помощью выражения sum & 1 и условия sum > 0.
  7. Обновление счётчика пар с помощью оператора +=.
  8. Вывод количества пар с помощью функции printf().
  9. Завершение программы с помощью оператора return.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы