#include<stdio.h>
#include<conio.h>
#define N 25

void Enter_Array (int Array[], int &size) //Ввод значений элементов массива
	{
	while(1)
	{ 
 	printf ("Vvedi razmer massiva (2 - %d): ", N);
 	scanf ("%d", &size);
 	if ((size>1) && (size<= N)) break;
	else printf("Neverniy vvod!\n");
	}
		printf ("Vvedi elementy massiva: \n");
		for (int i=0; i<size; i++) 
		scanf ("%d", &Array [i]);
	}
void Output_Array (int Array[], int size) //Вывод значений элементов массива
	{
	printf ("\nMassiv-rezultat:\n");
	for (int  i=0; i<size; i ++)  
	printf ("%d ", Array[i]);
	}
float Medium (int Array[], int size) //Определить среднее значение элементов массива
	{
		int Sum, i;
		for (i=0, Sum=0; i<size; i++) 
		Sum+=Array[i];
		return ((float) Sum/size);
	}
void Mini_Max (int Array[], int size, int &min, int &max) //Определить индексы минимального и максимального элементов массива
{
	min=max=0;
	int i;
	for (i=1; i<size; i++)
{ 
  	if (Array [i]<Array [min])   
  	min=i;
  	if (Array [i]>Array [max])  
  	max=i;
}
}
void Delete_Zeros (int Array[], int &size) //Удалить из массива нулевые элементы
{
	int i=0, j;
	while (i<size)
	if (Array[i]<=0)
{ 
	for (j=i; j<size-1; j++) 
	Array[j]=Array[j+1];
    size --;
}
else i++;
}
void Duplicate (int Array[], int &size, int Number) //Продублировать каждое вхождение заданного числа
{
	int i=0, j;
	while (i<size)
 	if (Array[i]==Number)
{ 
	if ((size+1) > N) 
	{ 
	puts ("Massiv zapolnen!"); 
	return; 
	}
    size++;
   	for (j=size-1; j>i; j--) 
	Array[j]=Array[j-1];
   	i+=2;
}
else  i++;
}
int main()
	{
	int A[N],k,minimum,maximum,num;
	puts("Rabota s massivom");
	Enter_Array (A,k);
	Duplicate (A,k,num);
	Output_Array (A,k);
	Delete_Zeros (A,k);
	Output_Array (A,k);
	printf("\nSrednee znachenie = %f", Medium (A,k));
	Mini_Max (A,k,minimum,maximum);
	printf("\nVivod indeksov Min=%d Max=%d", A[minimum], A[maximum]);
	getch();
	}
