У меня есть задание, и я буду рад, если вы сможете помочь мне с одним вопросом в этом задании, у меня есть вопрос, который звучит так:
напишите функцию, которая получаетмассив и его длина.Цель функции - проверить, есть ли в массиве все числа от 0 до длины -1, в противном случае функция вернет 1 или 0 в противном случае. Функция может пройти через массив только один.Вы не можете отсортировать массив или использовать счетный массив в функции
Я написал функцию, которая вычисляет сумму и произведение значений и индексов массива
int All_Num_Check(int *arr, int n)
{
int i, index_sum = 0, arr_sum = 0, index_multi = 1, arr_multi = 1;
for (i = 0; i < n; i++)
{
if (i != 0)
index_multi *= i;
if (arr[i] != 0)
arr_multi *= arr[i];
index_sum += i;
arr_sum += arr[i];
}
if ((index_sum == arr_sum) && (index_multi == arr_multi))
return 1;
return 0;
}
, то есть:length = 5, arr = {0,3,4,2,1} - это правильный массив длины = 5, arr = {0,3,3,4,2} - это неправильный массив
к сожалению, эта функция не работает должным образом во всех различных случаях изменения числа.то есть: длина = 5, {1,2,2,2,3}
спасибо за вашу помощь.