Hi there, i need a help with writing a program with 3 functions:
void Init (char ***names, int **grades, int *size) that gets The function initializes through input from the user a set of names and a set of scores. Both arrays of the same size, size. Whenever data is collected for arrays, they must be valid. If the user typed an invalid statistic, an error message should be printed and an alternate statistic requested. A valid score is complete between 0 and 100. A valid name meets the following conditions:• Begins with a large Latin letter.
• All but the first characters are lowercase Latin characters.
• Not already in the array. (The array must not contain the same name twice.)
For example:
Enter number of students: 3
Enter name: Ronit
Enter grade: 79
Enter name: yosi
Bad name. Try again: YOSI
Bad name. Try again: Y051
Bad name. Try again: Yosi
Enter grade: 93
Enter name: Ronit
Bad name. Try again: Efrat
Enter grade: 888
Bad grade. Try again: 88

the second function is int Find (char **names, int *grades, int size, char *name) The function accepts, as parameters, an array of names, an array of scores, and the size of these arrays. In addition, it receives as a student name parameter. The function finds the student's position in the set of names, and returns its grade. If the student does not appear in the set, 1- will be returned.
For example, if the arrays names, grades are like the previous example, size = 3, name = ”Efrat”, then the returned value is 88.

the last function is void FreeAll (char ***names, int **grades, int size) The function neatly frees all the memory of the arrays.

THANKS A LOT