Удалить каждый второй элемент заданного массива - C (СИ)
Формулировка задачи:
Задание: удалить каждый второй элемент заданного массива, при этом новый массив не
заводить. Вот код, но где то допущена ошибка и поэтому при выводе программа в ответе выводит те элементы которые должна удалить а не те которые должны быть
. Если найдете ошибку и исправите буду очень признателен.
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void main()
{
int n, i, k;
int a[9999];
srand(time(NULL));
printf("vvedite kol-vo elem: ");
scanf("%d", &n);
for (i = 0; i <n ; i++)
{
a[i] = rand() % 20;
printf("%d ", a[i]);
}
for (i = 1; i <= n; i++)
{
for (int j = 1;j <= n;j++)
if (i %2==0)
a[i] = a[i + 1];
n--;
}
for (i = 0; i <n; i++)
printf("%d\n ", a[i]);
}Решение задачи: «Удалить каждый второй элемент заданного массива»
textual
Листинг программы
n=(n+1)/2;
for (i = 0; i < n; i++)
{
a[i]=a[i*2];
}
printf("\n");
for (i = 0; i <n; i++)
{
printf("%d ", a[i]);
}