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

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

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

Здравствуйте.Есть задача: Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых нечётна и положительна. Под парой подразумевается два подряд идущих элемента массива. я ее реализовал:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <locale.h>
  4. int main(void)
  5. {
  6. setlocale(LC_ALL, "Russian"); //русский язык в консоли
  7. int mymassive[20],i,j,k;
  8. for (i=1; i <= 20; i++)
  9. {
  10. //printf("Введите",'%i',"эл массива");
  11. while (scanf_s("%d", &mymassive[i]) != 1 || mymassive[i]>10000 || mymassive[i]<-10000)
  12. {
  13. printf("Вышли из диапазона или некорректно ввели!Введите заново : ");
  14. fflush(stdin);
  15. }
  16. }
  17.  
  18. for (k = 1; k <= 20-1; k++)
  19. {
  20. j = 0;
  21. if ((mymassive[k] + mymassive[k + 1])>0 || (mymassive[k] + mymassive[k + 1]) % 2 == 1)
  22. j++;
  23. }
  24. printf("%d", j);
  25. _getch(); //запрет автозакрытия консоли
  26. return 0;
  27. }
Пожалуйста помогите вывести количество таких пар.я все сделал но в чем-то ошибся.хз я на плюсах программирую и легче но тут запутался)) и еще как реализовать на C код подобный на C++:
Листинг программы
  1. cout<<"Введите "<<n<<" элемент массива"<<endl;
?

Решение задачи: «Найти количество пар элементов массива, сумма которых нечётна и положительна»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define SIZE (20)
  6. #define MIN_VAL (-10000)
  7. #define MAX_VAL (10000)
  8. #define bounded_rand() ( rand() % ( MAX_VAL - MIN_VAL + 1 ) + MIN_VAL )
  9.  
  10. int main(void) {
  11.     int array[SIZE], i, pairsCount;
  12.    
  13.     srand(time(NULL));
  14.    
  15.     printf("ARRAY:\n");
  16.     for ( i = 0; i < SIZE; ++i )
  17.         printf("%d\n", ( array[i] = bounded_rand() ));
  18.    
  19.     for ( pairsCount = 0, i = 1; i < SIZE; ++i ) {
  20.         int sum = array[i - 1] + array[i];
  21.         pairsCount += ( sum > 0 && sum & 1 );
  22.     }
  23.     printf("%d pairs with positive odd sum.\n", pairsCount);
  24.    
  25.     return 0;
  26. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы