Определить количество инверсий (большее значение находится слева от меньшего) в массиве - C (СИ)
Формулировка задачи:
Решение задачи: «Определить количество инверсий (большее значение находится слева от меньшего) в массиве»
- #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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д