// Prak1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include <string>

#define N 5
#define METHODS 10

typedef  int (*Func)(int *mas, int size);

int Array_Print (int mas[], int size)
{ int i;
	for (i=0; i< size; i++)
		printf("%d", mas[i]);

return 0;
}

int Array_Create_And_Input(int mas[], int size)
{	   
 // mas = malloc (size);

 	int i;
 	for (i=0; i<size; i++){
	  scanf("%i", &mas[i]);
	};
  
 return 0;
}

int Bubble_Sort_Decrease(int *mas, int size)
{ int i, temp, r = 0;

while (r != -1) {
	r = -1; 
	for (i=0; i<size-1; i++)
		if (mas[i]<mas[i+1]) 
		{
			r = i+1;
			temp = mas[i];
 			mas[i] = mas[r];
			mas[r] = temp;
		}
}
 return 0;
}

int Bubble_Sort_Increase(int *mas, int size)
{ int i, temp, r = 0;

while (r != -1) {
	r = -1; 
	for (i=0; i<size-1; i++)
		if (mas[i]>mas[i+1]) 
		{
			r = i+1;
			temp = mas[i];
 			mas[i] = mas[r];
			mas[r] = temp;
		}
}
 return 0;
}

int (*Array_Sort)(int *mas, int size);


int _tmain(int argc, _TCHAR* argv[])
{
  int massiv[N];
  Func methods[METHODS]; 

  Array_Create_And_Input(massiv, N);
    

   methods[0] = Bubble_Sort_Decrease;
   methods[1] = Bubble_Sort_Increase;
    
    int m = 0;
    printf("\n Select method your prefer "); 
	scanf("%d", &m); 
   Array_Sort = methods[m % METHODS];

  Array_Sort(massiv, N);

  Array_Print(massiv, N);

    int temp;
    scanf("%d", &temp);
	return 0;
}

