Определить количество инверсий (большее значение находится слева от меньшего) в массиве - C (СИ)

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

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

Определить количество инверсий в массиве (таких пар элементов, в которых большее значение находится слева от меньшего).

Решение задачи: «Определить количество инверсий (большее значение находится слева от меньшего) в массиве»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void main()
  4. {
  5.     int N;
  6.     printf("Input N: ");
  7.     scanf("%d", &N);
  8.     int mas[N], i, j, count=0;
  9.     for(i=0; i<N; i++) scanf("%d", &mas[i]);
  10.     for(i=0; i<N-1; i++)
  11.     {
  12.         for(j=i+1; j<N; j++)
  13.         {
  14.             if(mas[i]>mas[j]) count+=1;
  15.         }
  16.     }
  17.     printf("Inver = %d", count);
  18. }

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

В этом коде определен входной параметр N типа int (целое число), который запрашивается у пользователя с помощью функции printf и считывается с помощью функции scanf. Затем создается массив типа int с именем mas, размер которого определяется переменной N. Пользователю предлагается ввести значения для каждого элемента массива с помощью функции scanf. Далее, с помощью двух вложенных циклов, происходит сравнение элементов массива и подсчет инверсий (больших значений, находящихся слева от меньших). Инверсией считается каждое вхождение меньшего значения в большее. Наконец, результат подсчета инверсий выводится на экран с помощью функции printf.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы