Выполнить сортировку по убыванию положительных элементов заданного массива - C (СИ)

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

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

Выполнить сортировку по убыванию положительных элементов заданного массива без изменения местоположения отрицательных элементов.

Решение задачи: «Выполнить сортировку по убыванию положительных элементов заданного массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #define N 5
  3. int swap(int *a, int *b)
  4. {
  5.     int tmp = *a;
  6.     *a = *b;
  7.     *b = tmp;
  8. }
  9. int main()
  10. {
  11.     int mas[N];
  12.     int i;
  13.     int j;
  14.     for(i = 0; i < N; i++) scanf("%d", &mas[i]);
  15.     for(i = 0; i < N;i++) {
  16.         for(j = 0; j < N; j++) {
  17.             if(mas[i] > mas[j] && mas[i] > 0 && mas[j] > 0) swap(&mas[i], &mas[j]);
  18.         }
  19.     }
  20.     for(i = 0; i < N;i++) printf("%d\n", mas[i]);
  21. }

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

  1. Подключение необходимых библиотек для работы с файлами и для работы с целочисленными значениями.
  2. Определение размера массива N.
  3. Создание функции swap для обмена значениями двух указателей на целочисленные значения.
  4. Ввод значений в массив с помощью цикла for и функции scanf.
  5. Два вложенных цикла for для сортировки массива методом пузырька. Внутренний цикл сортирует элементы внешнего цикла.
  6. Условие if для проверки, что элементы больше 0 и не равны друг другу.
  7. Если условие выполняется, то происходит обмен значениями двух указателей с помощью функции swap.
  8. Вывод отсортированного массива с помощью цикла for и функции printf.

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


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

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

13   голосов , оценка 3.923 из 5

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

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

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