d)Create a functionselection_sortthat receives as parameters an array of integers and thearray size, and order the array element in descending order. Implement Selection Sortalgorithm. It should be Selection Sort, not Bubble Sort, not Quick Sort, etc. If you do notremember selection sort, this link could be useful:https://goo.gl/hrAdMoe)Create a recursive function that calculate and returns thefactorialof a number. Thefunction receives the number (integer number) as parameterf)Copy the following main function in your class,int main() {int a [10] = {3, 5, 6, 8, 12, 13, 16, 17, 18, 20};int b [6]= {18, 16, 19, 3 ,14, 6};int c [5]= {5, 2, 4, 3, 1};// testing initialize_arrayprint_array(a, 10); // print: 3, 5, 6, 8, 12, 13, 16, 17, 18, 20initialize_array(a, 10);print_array(a, 10); // print: 1, 0, 1, 0, 1, 0, 1, 0, 1, 0// testing initialize_arrayprint_array(b, 6); // print: 18, 16, 19, 3 ,14, 6selection_sort (b, 6);print_array(b, 6); // print: 19, 18, 16, 14, 6, 3// testing factorialprintf("Factorail of 5 - %d\n", factorial (5)); //print: 120c[0] = factorial (c[0]);c[1] = factorial (c[2]);print_array(c, 5); // print: 120, 24, 4, 3, 1return 0;}Grading Criteria for the part 101 pts: file contains header information01 pts: adequate comment to explain every function01 pts: consistent indentation and spacing08 pts: selectionSort08 pts: printArray08 pts: initializeArray08 pts: factorial