Определить количество пар совпадающих элементов массива и удалить в каждой из них один такой элемент - C (СИ)

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

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

Помогите с задачей пожалуйста. Массив целых чисел X=(x1,x2,...,xn) содержит некоторое количество совпадающих элементов.Определить кол-во пар совпадающих элементов и удалить в каждой из них один такой элемент. Определить ,как изменилось среднее арифметическое значение элементов массива Х после его преобразования.

Решение задачи: «Определить количество пар совпадающих элементов массива и удалить в каждой из них один такой элемент»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 
#define N 10
 
int main(int argc, char* argv[])
{
    int A[N] = { 3, 1, 5, 1, 4, 3, 5, 2, 1, 4 };
 
    for (int t1 = 0; A[t1] > 0; t1++)
        printf("%d ",A[t1]);
 
    printf("\n");
 
    int pcnt = 0;
    for (int i = 0; A[i] > 0; i++)
    {
        bool found = false;
        for (int m = i-1; m >= 0 && !found; m--)
            found = (A[m] == A[i]) ? 1 : 0;
 
        if (found != false) continue;
 
        int count = 0;
        for (int j = i+1; A[j] > 0; j++)
            if (A[j] == A[i])
            {
                for (int k = j; A[k] > 0 && !count; k++)
                    A[k] = A[k+1];
 
                count++;
            }
 
        if (count > 0) pcnt++;
    }
 
    for (int t2 = 0; A[t2] > 0; t2++)
        printf("%d ",A[t2]);
 
    printf("\ncount = %d\n",pcnt);
 
    _getch();
}

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

В этом коде определен массив A размером N = 10, заполненный случайными целыми числами от 1 до 5.

  1. Сначала этот массив выводится на экран.
  2. Затем начинается поиск пар совпадающих элементов. Для каждой пары выполняется попытка удаления одного элемента. Если удаление прошло успешно (то есть, если после удаления элемент с таким же значением еще остался в массиве), увеличивается счетчик pcnt.
  3. После обхода всего массива выводится количество найденных пар.

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


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

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

10   голосов , оценка 4.2 из 5
Похожие ответы