Определить количество пар совпадающих элементов массива и удалить в каждой из них один такой элемент - 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.
- Сначала этот массив выводится на экран.
- Затем начинается поиск пар совпадающих элементов. Для каждой пары выполняется попытка удаления одного элемента. Если удаление прошло успешно (то есть, если после удаления элемент с таким же значением еще остался в массиве), увеличивается счетчик pcnt.
- После обхода всего массива выводится количество найденных пар.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д