Выполнить сортировку по убыванию положительных элементов заданного массива - 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]);
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и для работы с целочисленными значениями.
- Определение размера массива N.
- Создание функции swap для обмена значениями двух указателей на целочисленные значения.
- Ввод значений в массив с помощью цикла for и функции scanf.
- Два вложенных цикла for для сортировки массива методом пузырька. Внутренний цикл сортирует элементы внешнего цикла.
- Условие if для проверки, что элементы больше 0 и не равны друг другу.
- Если условие выполняется, то происходит обмен значениями двух указателей с помощью функции swap.
- Вывод отсортированного массива с помощью цикла for и функции printf.