Используя функции сформировать с помощью ДСЧ одномерный массив и вывести его на печать.
Удалить из массива все четные элементы.
Помогите пожалуйста!
C/C++
Помогите составить программу
#include <iostream>
using namespace std;
void fill(int* arr, size_t size) //заполнение массива
{
srand(time(nullptr)); //настройка ДСЧ
for (size_t i = 0; i < size; i++)
arr[i] = rand() % 21; //заполнение от 0 д0 20
}
void print(int* arr, size_t size) //печать элементов
{
for (size_t i = 0; i < size; i++) cout << arr[i] << " ";
cout << endl;
}
void del_n(int* arr, size_t& size) //удаление четных элементов
{
for (size_t i = 0; i < size/2; i++)
arr[i] = arr[i * 2 + 1]; //перемещаем нечетные элементы в начало массива
size /= 2; //коррекция размера по ссылке
}
int main()
{
int arr[100]; //выделение под масив статической области в 100 ячеек
size_t size = 21; //размер массива (здесь и в функциях size_t тоже самое что unsigned long long int)
fill(arr, size);
print(arr, size);
del_n(arr, size);
print(arr, size);
}
using namespace std;
void fill(int* arr, size_t size) //заполнение массива
{
srand(time(nullptr)); //настройка ДСЧ
for (size_t i = 0; i < size; i++)
arr[i] = rand() % 21; //заполнение от 0 д0 20
}
void print(int* arr, size_t size) //печать элементов
{
for (size_t i = 0; i < size; i++) cout << arr[i] << " ";
cout << endl;
}
void del_n(int* arr, size_t& size) //удаление четных элементов
{
for (size_t i = 0; i < size/2; i++)
arr[i] = arr[i * 2 + 1]; //перемещаем нечетные элементы в начало массива
size /= 2; //коррекция размера по ссылке
}
int main()
{
int arr[100]; //выделение под масив статической области в 100 ячеек
size_t size = 21; //размер массива (здесь и в функциях size_t тоже самое что unsigned long long int)
fill(arr, size);
print(arr, size);
del_n(arr, size);
print(arr, size);
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define limit 100
void shift(int *array, int size,int pos)
{
//сдвигаем элементы массива
//в позиции удаляемых
//чётных элементов:
for(int i = pos; i < size-1; i++)
array[i] = array[i+1];
array[size-1]=-1;
}
int main()
{
int size, //кол-во эл-в массива
count=0, //кол-во чётных эл-в
*A, //динамич. массив
ind; //счётчик индекса эл-та
printf("Enter size of array: ");
scanf("%d", &size);
//выделяем память в ОЗУ
//для массива:
A=(int*)malloc(size*sizeof(int));
//если память не выделена,
//то завершаем работу
//программы с ошибкой 1:
if(!A)
{
printf("\nError. Array not created.");
exit(1);
}
//заполняем массив
//случайными значениями:
srand(time(NULL));
printf("\nArray A[%d]:\n", size);
for(int i = 0; i < size; i++)
{
A[i] = 1+(rand()%limit);
printf("%d ", A[i]);
}
ind=0;
while(A[ind]>-1)
{//while
if(A[ind]==-1) break;
while(A[ind]%2==0)
{
shift(A,size,ind);
count++;
}
ind++;
}//while
//уменьшаем размер массива
//в памяти на количество
//удаляемых чётных элементов:
size-=count;
A=(int*)realloc(A,size*sizeof(int));
printf("\n\nResult array A[%d]:\n", size);
for(int i = 0; i < size; i++)
printf("%d ", A[i]);
free(A);
system("pause"); //for Windows
return 0;
}

#include<stdlib.h>
#include<time.h>
#define limit 100
void shift(int *array, int size,int pos)
{
//сдвигаем элементы массива
//в позиции удаляемых
//чётных элементов:
for(int i = pos; i < size-1; i++)
array[i] = array[i+1];
array[size-1]=-1;
}
int main()
{
int size, //кол-во эл-в массива
count=0, //кол-во чётных эл-в
*A, //динамич. массив
ind; //счётчик индекса эл-та
printf("Enter size of array: ");
scanf("%d", &size);
//выделяем память в ОЗУ
//для массива:
A=(int*)malloc(size*sizeof(int));
//если память не выделена,
//то завершаем работу
//программы с ошибкой 1:
if(!A)
{
printf("\nError. Array not created.");
exit(1);
}
//заполняем массив
//случайными значениями:
srand(time(NULL));
printf("\nArray A[%d]:\n", size);
for(int i = 0; i < size; i++)
{
A[i] = 1+(rand()%limit);
printf("%d ", A[i]);
}
ind=0;
while(A[ind]>-1)
{//while
if(A[ind]==-1) break;
while(A[ind]%2==0)
{
shift(A,size,ind);
count++;
}
ind++;
}//while
//уменьшаем размер массива
//в памяти на количество
//удаляемых чётных элементов:
size-=count;
A=(int*)realloc(A,size*sizeof(int));
printf("\n\nResult array A[%d]:\n", size);
for(int i = 0; i < size; i++)
printf("%d ", A[i]);
free(A);
system("pause"); //for Windows
return 0;
}

Похожие вопросы
- Помогите составить программу на Visual Studio C++
- ПОМОГИТЕ СОСТАВИТЬ ПРОГРАММУ НА C++.
- Помогите , составить программу на С++
- Составить программу на c++ УСПОЛЬЗУЯ МАССИВ!!!
- Составьте программу удаления столбца, содержащего максимальный элемент матрицы A[N][N] НА ЯЗЫКЕ СИ
- Составить программу C++, с помощью switch/case
- Составить программу c++ срочно пожалуйста
- Циклический алгоритм. Составить программу на с++ Помогите, пожалуйста
- Помогите, пожалуйста. Нужно составить программу на Си
- Помогите пожалуйста составить программу