Если элементы набора возрастают, то вывести 1. Если элементы набора убывают, то вывести (-1) - C (СИ)
Формулировка задачи:
Дано целое число K, а также K набор ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если элементы набора возрастают, то вывести 1.Если элементы набора убывают, то вывести -1.Если элементы набора не возрастают и не убывают, то вывести 0.
Решение задачи: «Если элементы набора возрастают, то вывести 1. Если элементы набора убывают, то вывести (-1)»
textual
Листинг программы
#include <stdio.h> int main () { int a[] = { 1, 2, 3, 0, // 1 9, 2, 2, 2, 0, // 0 4, 3, 2, 1, 0 // -1 }; int K = 3, i, d, *p = a; for (i = 0; i < K; ++i, ++p) { d = ((*p < p[1]) ? 1 : ((*p > p[1]) ? -1 : 0 )); for (++p; *p && d; ++p) { if (!((p[-1] < *p && d == 1) || (p[-1] > *p && d == -1))) d = 0; } for (; *p; ++p); printf("%d ", d); } printf("\n"); return 0; }
Объяснение кода листинга программы
В этом коде на языке C представлена реализация алгоритма сортировки своим ходом
(также известного как сортировка вставками) для массива целых чисел.
Алгоритм работает следующим образом:
- Создается массив a типа int со значениями {1, 2, 3, 0, 9, 2, 2, 2, 0, 4, 3, 2, 1, 0}.
- Устанавливается переменная K = 3, которая определяет количество элементов, которые нужно отсортировать.
- Переменная i инициализируется нулем, она используется для итерации по массиву.
- Переменная d инициализируется нулем, она используется для хранения результата сравнения элементов.
- Переменная p инициализируется адресом первого элемента массива a.
- Начинается цикл for, который выполняется K раз.
- Внутри цикла проверяется, является ли текущий элемент меньше следующего. Если да, то переменная d устанавливается в 1, иначе проверяется, является ли текущий элемент больше следующего. Если да, то переменная d устанавливается в -1, иначе переменная d устанавливается в 0.
- Если текущий элемент меньше следующего и переменная d равна 1, или если текущий элемент больше следующего и переменная d равна -1, то вставка текущего элемента в правильное место в отсортированной части массива выполняется путем перестановки элементов.
- Переменная p перемещается к следующему элементу после текущего.
- Цикл while выполняется до тех пор, пока текущий элемент больше или равен следующему.
- Переменная p перемещается к следующему элементу.
- Выполняется печать значения переменной d.
- По завершении цикла for выводится символ новой строки.
- Функция main возвращает 0, что означает успешное выполнение.
Таким образом, код реализует алгоритм сортировки
своим ходом
для массива a и выводит результат на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д