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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#define N 5
int swap(int *a, int *b)
{
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
int main()
{
    int mas[N];
    int i;
    int j;
    for(i = 0; i < N; i++) scanf("%d", &mas[i]);
    for(i = 0; i < N;i++) {
        for(j = 0; j < N; j++) {
            if(mas[i] > mas[j] && mas[i] > 0 && mas[j] > 0) swap(&mas[i], &mas[j]);
        }
    }
    for(i = 0; i < N;i++) printf("%d\n", mas[i]);
}

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

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

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

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