Функция srand (как генератор псевдослучайных чисел) должна быть сеяна только один раз, перед любыми вызовами rand () и запуском программы. Он не должен быть повторно посеян или повторен каждый раз, когда вы будете генерировать новую партию псевдослучайных чисел.
"Для генерации случайных чисел srand обычно инициализируется каким-то отличительным значение времени выполнения, например, значение, возвращаемое функцией time (объявлено в заголовке). Это достаточно характерно для большинства тривиальных задач рандомизации. "
Кроме того, каждый раз, когда ваша функция запускается, она получает случайный элемент вашего массива и устанавливает его на ноль. Единственный способ, которым это l oop заканчивается, - это сценарий, в котором все элементы этого массива были установлены на ноль. Покупайте в каждом l oop, выбранный индекс является случайным. Подумайте, сколько раз им нужно бежать, пока они не удовлетворят вашим требованиям.