- •Предисловие
- •Лабораторная работа №1 “ Простые (скалярные) типы данных языка Си. Составление и отладка простейшей Си-программы”
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Лабораторная работа №3 “ Реализация циклов в языке Си ”
- •Вариант 36
- •Вариант 37
- •Вариант 38
- •Вариант 39
- •Вариант 11
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 8
- •Вариант 9
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 4
- •Вариант 5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Лабораторная работа №8 “ Работа со структурами ”
- •Вариант 22
- •Вариант 23
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Лабораторная работа №9 “ Потоки ввода/вывода в Си ”
- •Содержание
Вариант 11
Плоскость с введенной на ней системой координат разбита на клетки с длиной стороны 1. На некоторых клетках квадрата размером 10x10 клеток находятся амебы, на одной клетке - не более одной амебы. Две амебы, стоящие на соседних клетках по вертикали, горизонтали или диагонали, являются соседями. По истечении промежутка времени t амебы, имеющие менее двух соседей, гибнут от одиночества. Определить, сколько амеб будет по истечении времени t.
Задания III уровня сложности
Одномерные массивы
Вариант 1
Подсчитать наибольшее число одинаковых идущих подряд элементов заданного одномерного числового массива.
Вариант 2
Имеется n предметов с известным весом и стоимостью. Необходимо выбрать такие предметы, чтобы их суммарный вес был менее 30 кг, а стоимость – наибольшей. Найти суммарную стоимость выбранных предметов.
Вариант 3
Реализовать однопроходной алгоритм определения количества максимальных элементов заданного одномерного числового массива.
Двумерные массивы
Вариант 1
Дана квадратная матрица порядка 2n. Мысленно разделим ее на четыре непересекающихся блока порядка n x n. Определить функцию, переставляющую блоки ее элементов циклически по часовой стрелке.
Вариант 2
Определить функцию, заполняющую квадратную матрицу размером 6 х 6 числами от 1 до 18 в шахматном порядке, начиная с левого верхнего угла. Оставшиеся элементы заполнить нулями.
Вариант 3
Определить функцию, позволяющую повернуть квадратную матрицу на 90 градусов вправо.
Лабораторная работа №5 “ Указатели. Динамическое управление памятью”
Методические указания
Создавая динамический массив, следует позаботиться о достаточном количестве памяти для размещения его элементов.
Следует помнить, что освобождать можно только ту память, которая была ранее выделена.
В задачах, требующих создания нового динамического массива, необходимо предусмотреть случай, когда в формируемом массиве может не оказаться ни одного элемента. Такую ситуацию надо обрабатывать отдельно.
Пример 1
Пусть задан одномерный массив вещественных чисел x[0], x[1], ... , x[n-1] (n - заданное натуральное число). Требуется получить и распечатать элементы этого массива в следующем порядке: x[k+1], x[k+2], ... , x[n-1], x[0], x[1], ..., x[k], (где k - индекс первого по порядку максимального элемента массива x). Физическое расположение в памяти элементов массива x не изменять. Для решения задачи использовать вспомогательный массив указателей.
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
void printp(int** p, int n);
void print(int* x, int n);
void rnd_vector(int* x, int n, int a, int b);
int ind_max(int* x, int n);
void formp(int* x, int** p, int n, int k);
void main()
{
SetConsoleOutputCP(1251);
srand ((unsigned)time(NULL));
const int n=10;
int a[n];
int imax; //Индекс максимального элемента массива
rnd_vector(a,n,1,50);
print(a,n);
puts("");
imax=ind_max(a,n);
int* r[n];
formp(a,r,n,imax);
printp(r,n);
}
/*
Функция заполняет массив x, состоящий из n элементов, случайными целыми числами из промежутка [a; b].
*/
void rnd_vector(int* x, int n, int a, int b )
{
for (int i=0;i<n;i++)
x[i]=(int)((double)rand()/RAND_MAX*(b-a+1)+a);
}
/*
Функция печатает массив x, состоящий из n элементов, на экране.
*/
void print(int* x,int n)
{
int i;
for(i=0; i<n; i++)
printf("%4d",x[i]);
puts("");
}
/*
Функция возвращает индекс первого по порядку максимального элемента массива x размера n.
*/
int ind_max(int* x, int n)
{
int max, ind;
max=x[0];
ind=0;
for( int i=0; i<n; i++)
if (x[i]>max)
{
max=x[i];
ind=i;
}
return ind;
}
/*
Функция печатает на экране значения, размещённые по адресам p[0], p[1], …, p[n-1], где p - массив, каждый элемент которого есть указатель на тип int, n – размер массива p.
*/
void printp(int** p, int n)
{
int i;
for(i=0; i<n; i++)
printf("%4d",*p[i]);
puts("");
}
/*
Функция заполняет массив указателей p адресами элементов массива x по заданному правилу (см. условие задачи).
n – размер массива p и массива x; k – индекс первого по порядку максимального элемента массива x.
*/
void formp(int* x, int** p, int n, int k)
{
int i,j;
for ( i=0, j=k+1; j<n ; i++,j++)
p[i]=&x[j];
for ( j=0; j<=k ;i++,j++)
p[i]=&x[j];
}
Пример 2
Задан одномерный массив целых чисел x. Получить новый массив y, состоящий из тех элементов массива x, которые кратны 7. Порядок следования и количество повторений этих чисел в исходном массиве сохранить. Оба массива разместить в динамической памяти.
Например:
x: 35, 11, 10, 7, 11, 35.
y: 35, 7, 35.
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
int* rand_array(int n,int a, int b);
void print_array(int*x, int n);
void main()
{
SetConsoleOutputCP(1251);
srand ((unsigned)time(NULL));
int n;
puts("Введите число элементов исходного массива:");
scanf("%d",&n);
int*a; //Объявлен указатель на исходный массив
a=rand_array(n,0,50);
puts("Исходный массив:");
print_array(a,n);
int k=0;
for (int i=0;i<n;i++)
if (a[i]%7==0)
k++;
if (k==0)
{
puts("Новый массив пустой.");
free(a);
return;
}
int*b; // Указатель на массив-результат
b=(int*)malloc(k*sizeof(int));
k=0;
for (i=0;i<n;i++)
if (a[i]%7==0)
b[k++]=a[i];
puts("Новый массив:");
print_array(b,k);
free(a);
free(b);
}
/*
Функция создаёт динамический массив из n элементов, заполняет его случайными целыми числами из промежутка [a;b] и возвращает указатель на начало этого массива.
*/
int* rand_array(int n,int a, int b)
{
int*x;
x=(int*)malloc(n*sizeof(int));
for (int i=0; i<n; i++)
x[i]=(int)((double)rand()/RAND_MAX*(b-a+1)+a);
return x;
}
/*
Функция печатает массив x на экране.
*/
void print_array(int* x, int n)
{
for (int i=0; i<n; i++)
printf("%5d", x[i]);
puts("");
}
Пример 3
Задан двумерный невыровненный массив. Получить новый массив такой же структуры, в котором продублировать все ненулевые элементы каждой строки заданного массива, разместив их в конце строки, сохраняя порядок их появления в строке исходного массива.
Например:
1 0 5 3 0 6 1 0 5 3 0 6 1 5 3 6
3 0 8 7 > 3 0 8 7 3 8 7
1 8 9 1 8 9 1 8 9
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
#include <math.h>
#include<time.h>
#include<stdlib.h>
void print_dat(int n,int**x,int*d);
int*create_vector(int n, int a,int b);
int**create_dat(int n,int*d,int a,int b);
void delete_dat(int n, int**x,int*d);
void print_vector(int*x, int n);
void main()
{
SetConsoleOutputCP(1251);
srand ((unsigned)time(NULL));
/*Создание исходного двумерного динамического массива: */
int**a; //Указатель на двумерный массив
int n;
puts("Введите число строк исходного массива:");
scanf("%d",&n);
int*da; /*da - указатель на массив, содержащий длины строк массива a */
da=create_vector(n,2,5);
a=create_dat(n,da,0,7);
puts("Исходный массив:");
print_dat(n,a,da);
/*Создание нового двумерного динамического массива: */
int**b; //Указатель на двумерный массив
int*db; /*db - указатель на массив, содержащий длины строк массива b */
db=(int*)malloc(n*sizeof(int));
b=(int**)malloc(n*sizeof(int*));
int i,j,count,k;
for (i=0;i<n;i++)
{
count=0;
for (j=0;j<da[i];j++)
if (a[i][j]!=0)
count++;
//Длина i-ой строки массива b:
db[i]=da[i]+count;
b[i]=(int*)malloc((da[i]+count)*sizeof(int));
for (j=0;j<da[i];j++)
b[i][j]=a[i][j];
k=da[i];
for (j=0; j<da[i];j++)
if (a[i][j]!=0)
b[i][k++]=a[i][j];
}
puts("Новый массив:");
print_dat(n,b,db);
//Освобождение памяти:
delete_dat(n,b,db);
delete_dat(n,a,da);
}
/*
Функция выводит на экран двумерный невыровненный массив x, содержащий n строк.
d – указатель на одномерный массив из n элементов, в котором передаются длины строк массива x.
Длину каждой строки функция выводит в левом столбце.
*/
void print_dat(int n, int**x, int*d)
{
for(int i=0;i<n;i++)
{
printf("%5d%t%t",d[i]);
for(int j=0;j<d[i];j++)
printf("%5d",x[i][j]);
puts("");
}
puts("");
}
/*
Функция создаёт двумерный динамический невыровненный массив, содержащий n строк, заполняет его случайными целыми числами из промежутка [a;b] и возвращает указатель на начало этого массива.
d – указатель на одномерный массив из n элементов, в котором передаются длины строк двумерного массива.
*/
int**create_dat(int n, int*d, int a, int b )
{
int**x;
x=(int**)malloc(n*sizeof(int*));
for (int i=0;i<n;i++)
{
x[i]=(int*)malloc(d[i]*sizeof(int));
for (int j=0;j<d[i];j++)
x[i][j]= (int)((double)rand()/RAND_MAX*(b-a+1)+a);
}
return x;
}
/*
Функция create_vector() создаёт динамический массив из n элементов, заполняет его случайными целыми числами из промежутка [a;b] и возвращает указатель на начало этого массива.
*/
int* create_vector(int n,int a, int b)
{
int*x;
x=(int*)malloc(n*sizeof(int));
for (int i=0; i<n; i++)
x[i]=(int)((double)rand()/RAND_MAX*(b-a+1)+a);
return x;
}
/*
Функция печатает массив x на экране.
*/
void print_vector(int* x, int n)
{
for (int i=0; i<n; i++)
printf("%5d", x[i]);
puts("");
}
/*
Функция освобождает память, занятую двумерным динамическим массивом x, а также память, выделенную для длин его строк.
*/
void delete_dat(int n,int**x,int*d)
{
free(d);
for (int i=0; i<n; i++)
free(x[i]);
free(x);
}
Задания для самостоятельного выполнения
Задания I уровня сложности
Использование массивов указателей
Пусть задана последовательность вещественных чисел x[1], x[2], … , x[n] (где n – заданное натуральное число). Требуется получить и распечатать элементы этой последовательности в другом порядке (порядок задан ниже в конкретной задаче).
Примечание. Заданную последовательность чисел разместить в программе в виде статического массива. При этом учесть, что индексация массивов в Си начинается с нуля. Для решения задачи использовать вспомогательный массив указателей, соответствующий исходному массиву.
В вариантах 1 - 8 исходный массив x содержит 2n элементов (натуральное n задано).
В вариантах 9 - 14 n = 17.
В вариантах 15 - 19 n = 20.
В вариантах 20 - 30 n = 30.
Вариант 1
x[1], x[n+1], x[2], x[n+2], … , x[n], x[2n].
Вариант 2
x[1], x[2n], x[2], x[2n-1], … , x[n], x[n+1].
Вариант 3
x[2n], x[n], x[2n-1], x[n-1], … , x[n+1], x[1].
Вариант 4
x[2n], x[1], x[2n-1], x[2], … , x[n+1], x[n].
Вариант 5
x[n], x[n+1], x[n-1], x[n+2], … , x[1], x[2n].
Вариант 6
x[n], x[2n], x[n-1], x[2n-1], … , x[1], x[n+1].
Вариант 7
x[n+1], x[1], x[n+2], x[2], … , x[2n], x[n].
Вариант 8
x[n+1], x[n], x[n+2], x[n-1], … , x[2n], x[1].
Вариант 9
x[11], x[12], … , x[17], x[1], x[2], … , x[10].
Вариант 10
x[11], x[12], … , x[17], x[10], x[9], … , x[1].
Вариант 11
x[17], x[16], … , x[11], x[1], x[2], … , x[10].
Вариант 12
x[10], x[9], … , x[1], x[11], x[12], … , x[17].
Вариант 13
x[10], x[9], … , x[1], x[17], x[16], … , x[11].
Вариант 14
x[1], x[2], … , x[10], x[17], x[16], … , x[11].
Вариант 15
x[1], x[3], … , x[19], x[2], x[4], … , x[20].
Вариант 16
x[1], x[11], x[3], x[13], … , x[9], x[19].
Вариант 17
x[2], x[4], … , x[20], x[1], x[3], … , x[19].
Вариант 18
x[12], x[2], x[14], x[4], … , x[20], x[10].
Вариант 19
x[1], x[11], x[12], x[2], x[3], x[13], x[14], x[4], … , x[9], x[19] , x[20], x[10].
Вариант 20
x[1], x[4], x[7], … , x[28], x[2], x[5], x[8], … , x[29], x[3], x[6], x[9], … , x[30].
Вариант 21
x[2], x[5], x[8], …, x[29], x[1], x[4], x[7], … , x[28], x[3], x[6], x[9], … , x[30].
Вариант 22
x[3], x[6], x[9], … , x[30], x[1], x[4], x[7], … , x[28], x[2], x[5], x[8], … , x[29].
Вариант 23
x[3], x[6], x[9], … ,x[30], x[2], x[5], x[8], … , x[29], x[1], x[4], x[7], … , x[28].
Вариант 24
x[1], x[4], x[7], … , x[28], x[3], x[6], x[9], … ,x[30], x[2], x[5], x[8], … , x[29].
Вариант 25
x[2], x[5], x[8], …, x[29], x[3], x[6], x[9], … , x[30], x[1], x[4], x[7], … , x[28].
Вариант 26
x[30], … , x[9], x[6], x[3], x[29], … , x[8], x[5], x[2], x[28], … , x[7], x[4], x[1].
Вариант 27
x[30], … , x[9], x[6], x[3], x[28], … , x[7], x[4], x[1], x[29], … , x[8], x[5], x[2].
Вариант 28
x[29], … , x[8], x[5], x[2], x[30], … , x[9], x[6], x[3], x[28], …, x[7], x[4], x[1].
Вариант 29
x[29],… , x[8], x[5], x[2], x[28], …, x[7], x[4], x[1], x[30], … , x[9], x[6], x[3].
Вариант 30
x[28],…, x[7], x[4], x[1], x[29], … , x[8], x[5], x[2], x[30], … , x[9], x[6], x[3].
Вариант 31
x[28], … , x[7], x[4], x[1], x[30], … , x[9], x[6], x[3], x[29], … , x[8], x[5], x[2].
Одномерные динамические массивы
Вариант 1
Задан одномерный массив натуральных чисел x. Получить новый массив y, состоящий из тех элементов массива x, которые являются однозначными числами. Порядок следования и количество повторений таких чисел в исходном массиве сохранить. Оба массива разместить в динамической памяти.
Например: x: 32, 5, 1, 1, 7, 14, 5, 7, 32. y: 5, 1, 1, 7, 5, 7.
Вариант 2
Задан одномерный массив натуральных чисел x. Получить новый массив y, состоящий из тех элементов массива x, для которых последняя цифра в записи значения элемента есть 1. Порядок следования и количество повторений таких чисел в исходном массиве сохранить. Оба массива разместить в динамической памяти.
Например: x: 32, 5, 1, 1, 7, 141, 5, 7, 31. y: 1, 1, 141, 31.
Вариант 3
Заданы два одномерных массива x и y одинакового размера, элементами которых являются натуральные числа. Получить новый массив z, элементами которого являются такие индексы i, для которых x[i] и y[i] – либо оба четные, либо оба нечетные. Оба массива разместить в динамической памяти.
Например: x: 3, 5, 8, 3, 10, 12. y: 6, 7, 1, 7, 2, 11. z: 1, 3, 4.
Вариант 4
Заданы два одномерных массива x и y одинакового размера, элементами которых являются натуральные числа. Получить новый массив z, элементами которого являются такие индексы i, для которых x[i] и y[i] – либо оба однозначные, либо оба двузначные числа. Оба массива разместить в динамической памяти.
Например: x: 3, 5, 8, 633, 10, 12. y: 6, 7, 198, 773, 2, 11. z: 0, 1, 5.
Вариант 5
Заданы два одномерных массива различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элементами первого (число k задано).
Вариант 6
Задан одномерный числовой массив. Получить новый массив, включив в него все те элементы исходного массива, которые расположены между его первым и последним максимальными элементами. (Не включая сами максимальные элементы.)
Вариант 7
Задан одномерный числовой массив. Получить новый массив, включив в него все те элементы исходного массива, которые расположены после первого максимального элемента.
Вариант 8
Задан одномерный числовой массив. Получить новый массив, включив в него все те элементы исходного массива, которые расположены после последнего нулевого элемента.
Вариант 9
Задан одномерный числовой массив. Получить новый массив, включив в него все те элементы исходного массива, которые расположены до первого отрицательного элемента.
Вариант 10
Задан одномерный числовой массив. Получить новый массив, включив в него все те элементы исходного массива, которые расположены между первым и последним нулевыми элементами.
Вариант 11
Задан одномерный числовой массив. Получить два новых массива, в один записать все те элементы исходного массива, которые расположены до первого максимального элемента, в другой – все остальные.
Вариант 12
Задан одномерный числовой массив. Получить два новых массива, в один записать все те элементы исходного массива, которые расположены до первого его нулевого элемента, в другой – все остальные.
Вариант 13
Задан одномерный числовой массив. Получить два новых массива, в один записать все те элементы исходного массива, которые расположены между его первым и последним отрицательными элементами, в другой – все остальные.
Вариант 14
Задан одномерный числовой массив. Получить два новых массива, в один записать все те элементы исходного массива, которые расположены до первого максимального элемента, в другой – все остальные.
Двумерные динамические массивы
Вариант 1
Разреженную матрицу (содержащую незначительное количество отличных от нуля элементов) представить в виде трех одномерных массивов, элементами которых являются: номера строк, номера столбцов и значения ненулевых элементов.
Вариант 2
Пусть в каждой строке исходного массива имеется хотя бы один ненулевой элемент. Получить новый массив, удалив в каждой строке исходного массива все нулевые элементы.
Например: 1 0 5 3 0 6 1 5 3 6 3 0 8 7 → 3 8 7 1 8 9 1 8 9
Вариант 3
В новом массиве продублировать все ненулевые элементы каждой строки, разместив их в конце строки, сохраняя порядок их появления в строке исходного массива.
Например: 1 0 5 3 0 6 1 0 5 3 0 6 1 5 3 6 3 0 8 7 → 3 0 8 7 3 8 7 1 8 9 1 8 9 1 8 9
Вариант 4
В каждой строке нового массива оставить только те элементы исходного массива, которые не превосходят заданного значения P.
Например, при P = 3: 1 0 5 3 0 6 1 0 3 0 3 0 8 7 → 3 0 1 8 9 1
Вариант 5
Получить новый одномерный массив, включив в него последовательно все элементы тех строк исходного массива, максимальный элемент которых не превосходит заданного значения P.
Например, при P = 7: 1 0 5 3 0 6 3 0 8 7 → 1 0 5 3 0 6 1 3 4 1 3 4
Вариант 6
Получить два новых двумерных массива. В один включить все неотрицательные элементы, а в другой – все положительные элементы исходного массива, сохраняя расположение элементов по строкам.
Например: 1 0 –5 3 0 -6 1 0 3 0 -5 -6 3 0 -8 7 → 3 0 7 и -8 1 -3 -4 1 -3 -4
Вариант 7
Пусть исходный массив состоит только из нулей и единиц. Новый массив получить по правилу: если в i-ой строке исходного массива больше единиц, чем нулей, то заполнить i-ую строку нового массива одними единицами в том количестве, в каком они встречаются в соответствующей строке исходного массива, в противном случае i-ую строку нового массива заполнить нулями по тому же правилу.
Например: 1 0 1 1 0 1 1 1 1 1 1 0 0 1 → 0 0 1 0 0 0 0
Вариант 8
Получить новый одномерный массив, переписав в него последовательно те элементы каждой строки исходного массива, которые предшествуют первому встретившемуся нулевому элементу данной строки.
Например: 1 –5 3 0 -6 1 0 3 0 3 0 -8 7 → 1 -5 3 3 1 -3 -4 1 -3 -4
Вариант 9
Получить новый одномерный массив, переписав в него последовательно те элементы каждой строки исходного массива, которые предшествуют первому встретившемуся максимальному элементу данной строки.
Например: 1 –5 3 0 -6 1 0 3 0 3 0 -8 7 → 1 -5 3 0 -8 1 1 3 -4
Вариант 10
Получить новый одномерный массив, переписав в него последовательно те элементы каждой строки исходного массива, которые следуют за последним нулевым элементом данной строки.
Например: 1 –5 3 0 -6 1 0 3 3 0 8 7 → 3 8 7 1 -3 -4 1 -3 -4
Вариант 11
Получить новый двумерный массив по правилу: первый элемент каждой новой строки – это значение максимального элемента соответствующей старой строки; второй элемент новой строки – это количество максимальных элементов в старой строке; все последующие элементы новой строки – это индексы максимальных элементов старой строки.
Например: 1 –5 3 0 -6 1 0 3 3 2 2 7 3 0 8 7 → 8 1 2 1 -3 -4 1 1 0
Вариант 12
Получить новый одномерный массив, переписав в него последовательно те элементы каждой строки исходного массива, которые следуют за последним максимальным элементом данной строки.
Например: 1 –5 3 0 -6 1 0 3 0 9 0 8 7 → 0 0 8 7 -4 1 3 -4
Вариант 13
Получить новый двумерный массив по правилу: первый элемент каждой новой строки – это количество нулевых элементов соответствующей старой строки; все последующие элементы новой строки – это индексы нулевых элементов старой строки.
Например: 1 –5 3 0 -6 1 0 3 2 3 6 3 0 8 7 → 1 1 1 -3 -4 0
Вариант 14
Дан двумерный целочисленный массив. Сформировать результирующий одномерный массив, элементами которого являются суммы элементов по строкам для тех строк, которые начинаются с положительного числа.
Задания II уровня сложности
Использование массивов указателей
Вариант 1
Пусть задан одномерный массив вещественных чисел x[0], x[1], ... , x[n-1] (n - заданное натуральное число). Требуется получить и распечатать элементы этого массива в следующем порядке: сначала получить элементы массива, целая часть которых является четным числом (с сохранением порядка взаимного расположения элементов в исходном массиве), затем - элементы массива, целая часть которых - нечетное число (также с сохранением порядка взаимного расположения элементов в исходном массиве).
Вариант 2
Пусть задан одномерный массив вещественных чисел x[0], x[1], ... , x[n-1] (n - заданное натуральное число). Пусть задано целое неотрицательное число m < n. Требуется получить и распечатать элементы этого массива в следующем порядке: элементы x[0], x[1], ... , x[m-1] упорядочить по возрастанию, а элементы x[m], x[m+1], ... , x[n-1] - по убыванию.
Одномерные динамические массивы
Вариант 1
Задан одномерный массив целых чисел x, значения элементов которого лежат в интервале от 0 до 9. Получить новый массив y по правилу: продублировать в массиве y каждый элемент исходного массива x столько раз, чему равно значение элемента массива x. Оба массива разместить в динамической памяти.
Например: x: 3, 2, 1, 0, 5. y: 3, 3, 3, 1, 5, 5, 5, 5, 5.
Вариант 2
Задан одномерный массив целых чисел x. Получить новый массив y по правилу: удалить из массива x все повторяющиеся элементы, оставив по одному представителю.
Например: x: 3, 5, 8, 3, 1, 0, 0, 0, 1, 0, 6, 3, 2. y: 3, 5, 8, 1, 0, 6, 2.
Вариант 3
Задан одномерный массив целых чисел x. Получить новый массив y, включив в него все те и только те элементы массива x, которые встречаются в нем по одному разу.
Например: x: 3, 5, 8, 3, 1, 0, 0, 0, 1, 0, 6, 3, 2. y: 5, 8, 6, 2.
Вариант 4
Задан одномерный массив целых чисел x. Получить новый массив y по правилу: удалить из массива x все те его элементы, которые встречаются в нем только по одному разу.
Например: x: 3, 5, 8, 3, 1, 0, 0, 0, 1, 0, 6, 3, 2. y: 3, 3, 1, 0, 0, 0, 1, 0, 3.
Вариант 5
Заданы два одномерных числовых массива x и y, не обязательно равного размера. Получить новый массив z, включив в него все те элементы исходных массивов, которые встречаются как в первом, так и во втором массиве (без учета их возможного многократного повторения в каком-либо одном массиве или в обоих сразу). Все три массива разместить в динамической памяти.
Например: x: 3, 5, 8, 3, 1, 0, 0, 0, 1, 0, 6, 3, 2. y: 3, 3, 1, 7, 0, 0, 0, 1, 0, 3. z: 3, 1, 0.
