Хотя вы не можете удалить элемент из массива, вы можете переместить (поменять местами) элемент max до конца массива и сохранить динамический размер.
const unsigned int fixed_size=5;
unsigned int dynamic_size = fixed_size;
std::array<int, fixed_size> myArray;
И когда вы найдете максимум (позволит вам реализовать эту часть), поменяйте его местами с последним индексом в динамическом диапазоне. И уменьшить динамический размер.
std::swap( myArray[dynamic_size-1], myArray[max_index] );
--dynamic_size;
И это будет повторять массив, исключая элемент max.
for( unsigned int i=0; i<dynamic_size; ++i ) printf( "%u: %d\n", i, myArray[i] );