#include #include #define N 15 /*Дан массив целых чисел, элементы которого расположены по возрастанию, причем есть совпадающие. Исключить из массива одинаковые элементы*/ // Чтоб выгнать элемент из массива, нужно сдвигать его вправо и менять воображаемый размер массива int main() { int x[N] = {-5, -5, -4, -3, -3, -3, -3, 1, 1, 1, 1, 1, 2, 3, 4}; // По условию элементы расставлены по возрастанию int M = N; int s = 1, i = 0; for(int k = 1; k < M; k++) { if(x[k] == x[k - 1]) { while(x[k+s] == x[k]) s++; // Считаем кол-во совпадающих элементов справа s--; // Вычитаем единицу, т.к изначально s был равен 1 for(int f = 0; f < (2+s); f++) // 2+s - кол-во элементов, которые надо выгнать { i = k - 1; // i - тот элемент, который будем исключать while(i < M-1) { x[i] = x[i+1]; i++; } M--; // Меняем воображаемый размер массива } k = 0; s = 1; } } printf("A[%d] = {", M); // Выводим на экран результат for(int k = 0; k < M; k++) printf("%d, ", x[k]); printf("};\n"); return 0; }