КЗ
Кирилл Зимин

Задача на одномерные массивы

Дан целочисленный массив размера N. Серия-это группа подряд идущих одинаковых элементов, а ее длина-количество этих элементов (длина серии может быть равна 1). Преобразовать массив, увеличив каждую его серию на один элемент. НА ЯЗЫКЕ СИ.

Эдик Жолобов
Эдик Жолобов

/*
Дан целочисленный массив размера N. Серия-это группа подряд идущих
одинаковых элементов, а ее длина-количество этих элементов (длина
серии может быть равна 1). Преобразовать массив, увеличив каждую
его серию на один элемент. НА ЯЗЫКЕ СИ.
*/
#include
#include
#include
#include

int main(){
srand(time(0));
int a = 0, b = 2;
int N;
int *ar;
int counter(1),num;

printf("Enter size of your array: ");
scanf("%i",&N);

ar = (int*) malloc(N*(sizeof(int))); // создаём динамический массив

// сзаполняем случайными числами и выводим на экран
for(int i(0); i < N; i++){
ar[i] = rand() % (b - a + 1) + a;
printf("%i ",ar[i]);
}
printf("\n");

// преобразуем массив
for(int i(1); i <= N; i++){
if(ar[i] != ar[i-1]) { // если предыдущий элемент был другой, то
N +=1;
ar = (int*) realloc(ar,N*sizeof(int)); // увеличиваем размер массива на один элемент
// и смещаем массив на один элемент вправо, оставляя на месте предыдущие элементы
for(int j(N); j >= i; j--)
ar[j] = ar[j-1];
i++;
}
}

for(int i(0); i < N; i++) // выводим преобразованный массив
printf("%i ",ar[i]);

//free(ar); // не хочет очищаться (

getch();
return 0;
}

KP
Konstantin Popov

Ты на программиста учишься?

Александр
Александр

А где вопрос?

Похожие вопросы
программирование (одномерные массивы)
Обработка одномерных массивов.
Паскаль. Одномерные массивы.
помогите пожалуйста задача по одномерному массиву в Паскале
Паскаль одномерные массивы)
Помогите решить задачу в С#(одномерные, двумерные массивы).
Помогите решить задачу на Java Одномерные массивы:
Одномерные массивы (с++)
задача с одномерным массивом VBA
Задачи на одномерные и многомерные массивы