Source: Data Abstraction and Problem Solving with C++: Walls and Mirrors, Seventh Edition, by Frank M. Carrano and Timothy Henry, Addison Wesley, 2017.
Here is a paraphrase of Carrano's code for insertion sort. He expresses it as a template function, but for the homework, it should not be a template.
template <typename T> void insertionSort(T theArray[], int n) { for (int unsorted = 1; unsorted < n; unsorted++) { T nextItem = theArray[unsorted]; int loc = unsorted; while (loc > 0 && theArray[loc-1] > nextItem) { theArray[loc] = theArray[loc-1]; loc--; } theArray[loc] = nextItem; } }