Найдите сумму трех наибольших отрицательных четных элементов исходного массива Р(22) - C (СИ)

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

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

Найдите сумму трех наибольших отрицательных четных элементов исходного массива Р(22).

Решение задачи: «Найдите сумму трех наибольших отрицательных четных элементов исходного массива Р(22)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int cmp(void* const a, void* const b)
  6. {
  7.     int x = *(int*)a;
  8.     int y = *(int*)b;
  9.     if (x >= 0 && y >= 0) return 0;
  10.     if (x >= 0 && y < 0) return 1;
  11.     if (x < 0 && y >= 0) return -1;
  12.     int x1 = x & 1;
  13.     int y1 = y & 1;
  14.     if (x1 != 0 && y1 != 0) return 0;
  15.     if (x1 != 0 && y1 == 0) return 1;
  16.     if (x1 == 0 && y1 != 0) return -1;
  17.     return x > y ? -1 : x != y;
  18. }
  19.  
  20. int main(void)
  21. {
  22.     srand(time(NULL));
  23.     int p[22];
  24.     size_t i;
  25.     for (i = 0; i < 22; i++) {
  26.         p[i] = rand() % 30 - 20;
  27.         printf("%d ", p[i]);
  28.     }
  29.     putchar('\n');
  30.     qsort(p, 22, sizeof(int), cmp);
  31.     int sum = 0;
  32.     for (i = 0; i < 3; i++) {
  33.         sum += p[i];
  34.         printf("%d ", p[i]);
  35.     }
  36.     putchar('\n');
  37.     printf("%d\n", sum);
  38.     return 0;
  39. }

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

В этом коде:

  1. Создается массив p типа int размером 22.
  2. Заполняется массив случайными отрицательными четными числами с помощью функции rand().
  3. Выводится на экран содержимое массива.
  4. Массив сортируется по заданному условию с помощью функции qsort() и функции сравнения cmp().
  5. Находится сумма трех наибольших отрицательных четных элементов массива с помощью цикла for и переменной sum.
  6. Выводится на экран найденная сумма.
  7. Завершается программа.

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


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

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

10   голосов , оценка 3.6 из 5

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

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

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