Программа недопустима и имеет неопределенное поведение.
Для начинающих массив массивов переменной длины не является стандартной функцией C +
int p = 1, y = 0;
double sum = 1;
int many[p];
И в любом случае вы определили массив с одним элементом. Таким образом, единственный допустимый индекс для доступа к элементам массива - 0.
Даже в первом операторе, который использует массив
cin >> many[p];
, к нему обращаются за его пределами.
Вы должны использовать стандартный шаблон класса std::vector
. Или, как на самом деле вы имеете дело с одним значением, тогда даже нет смысла использовать контейнер, Определите скалярный объект вместо массива.