Сходу вижу одну логическую ошибку:
То есть, если в строке будет только одно отрицательное число, то после цикла в
p запишется его значение, а
l станет равным 2. Таким образом в
s[j] уйдёт
p/2, что есть не верно.
Исправление состоит в инизиализации
l нулём. После цикла нужно не забыть перед делением на
l проверить, что
l не равно нулю.
Кстати, условия задачи не содержат инструкций что делать, если в строке нет ни одного отрицательного значения (это как раз случай когда
l равно нулю). Предлагаю уточнить у преподавателя. Один из возможных вариантов уточнения задания, записывать в этом случае в
s[j] ноль, так как он является верхней границей всех средних арифметическх любых отрицательных чисел.
На будущее советую пользоваться дебагером для обнаружения подобных ошибок. Он позволяет исполнять программу пошагово, просматривая на каждом шаге значения переменных.