В массиве X[N] перед каждым чётным элементом вставить его удвоенное значение - C (СИ)

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

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

Буферный массив не использовать. Размерность и элементы массива вводит пользователь. Помогите пожалуйста с кодом.

Решение задачи: «В массиве X[N] перед каждым чётным элементом вставить его удвоенное значение»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main()
  5. {
  6.     int i, j, count = 0, *arr;
  7.     unsigned N;
  8.     puts("Enter array's size:");
  9.     while(1 != scanf("%u", &N)){
  10.         puts("Error!Try again:");
  11.         getchar();
  12.     }
  13.     arr = malloc(N * sizeof *arr);
  14.     srand(time(NULL));
  15.     for(i = 0; i < N; i++){
  16.         printf("%d ", *(arr + i) = rand() % 30 - 14);
  17.         if(!(*(arr + i) & 1))
  18.             count++;
  19.     }
  20.     putchar('\n');
  21.     arr = realloc(arr, (N + count) * sizeof*arr);
  22.     for(i = N + count - 1, j = N - 1; j >= 0; j--, i--){
  23.         if(!(*(arr + j) & 1)){
  24.             *(arr + i) = *(arr + j);
  25.             i--;
  26.             *(arr + i) = *(arr + j) * 2;
  27.         }
  28.         else
  29.             *(arr + i) = *(arr + j);
  30.     }
  31.     putchar('\n');
  32.     for(i = 0; i < N + count; i++)
  33.         printf("%d ", *(arr + i));
  34.     putchar('\n');
  35.     return 0;
  36. }

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

В этом коде:

  1. Пользователю предлагается ввести размер массива.
  2. Массив инициализируется случайными целыми числами от -14 до 14.
  3. Переменная count отслеживает количество чётных элементов в массиве.
  4. Массив освобождается и заново выделяется память под массив, увеличенный на количество чётных элементов.
  5. В цикле добавляются чётные элементы, удваивая их значение и вставляя перед каждым чётным элементом.
  6. Выводится обновлённый массив.

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


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

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

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

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

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

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