Продублировать в массиве все четные числа - C (СИ)
Формулировка задачи:
Дан целочисленный массив размера N. Продублировать в нем все четные числа. Не могу понять как продублировать элементы и записать их правильно в массив не потеряв других элементов. Код на Си. Помогите кто чем может. Спасибо)
Решение задачи: «Продублировать в массиве все четные числа»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> int main(void) { unsigned n; srand(time(NULL)); while ( printf("Number of elements: ") && scanf("%u", &n) == 1 && n ) { unsigned i = 0; int * array = malloc(sizeof(int) * n * 2); if ( ! array ) { perror("Memory error!\n"); exit(EXIT_FAILURE); } while ( i < n ) array[i++] = rand() % 100; printf("Origin:\n"); for ( i = 0; i < n; ++i ) printf("%d ", array[i]); i = 0; while ( i < n ) { if ( ! ( array[i] & 1 ) ) { memmove(array + i + 1, array + i, sizeof(int) * (n - i + 1)); i += 2; n += 1; } else ++i; } printf("\nDoubling even values:\n"); for ( i = 0; i < n; ++i ) printf("%d ", array[i]); printf("\n"); free(array); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д