Определить количество инверсий (большее значение находится слева от меньшего) в массиве - C (СИ)
Формулировка задачи:
Определить количество инверсий в массиве (таких пар элементов, в которых большее значение находится слева от меньшего).
Решение задачи: «Определить количество инверсий (большее значение находится слева от меньшего) в массиве»
textual
Листинг программы
#include <stdio.h> void main() { int N; printf("Input N: "); scanf("%d", &N); int mas[N], i, j, count=0; for(i=0; i<N; i++) scanf("%d", &mas[i]); for(i=0; i<N-1; i++) { for(j=i+1; j<N; j++) { if(mas[i]>mas[j]) count+=1; } } printf("Inver = %d", count); }
Объяснение кода листинга программы
В этом коде определен входной параметр N типа int (целое число), который запрашивается у пользователя с помощью функции printf и считывается с помощью функции scanf. Затем создается массив типа int с именем mas, размер которого определяется переменной N. Пользователю предлагается ввести значения для каждого элемента массива с помощью функции scanf. Далее, с помощью двух вложенных циклов, происходит сравнение элементов массива и подсчет инверсий (больших значений, находящихся слева от меньших). Инверсией считается каждое вхождение меньшего значения в большее. Наконец, результат подсчета инверсий выводится на экран с помощью функции printf.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д