Эта функция получает последовательность чисел до тех пор, пока пользователь не введет -1
. Он должен возвращать сумму чисел в index(mod3)=0
минус число в других индексах.
Например:
9 2 4 7 8 1 3 -1
функция сначала суммирует все числа, находящиеся в индексах, кратных трем. Таким образом, sum1
должно быть 5
, потому что 4 находится в 3-м индексе, а 1 - в 6-м индексе, все остальные индексы в сумме составляют sum2
. Затем он должен вычесть одно из другого: sum1 - sum2
и на выходе должно быть -24
(т.е. сумма1 - сумма2 = 5 - 29 = -24)
Я написал этот код, и я не понимаю, почему он не работает должным образом, вывод, который возвращается для каждой последовательности, равен 0.
int sumOfSeq();
void main()
{
printf("%d\n", sumOfSeq());
system("pause");
}
int sumOfSeq()
{
int n, curr = 1, sum1 = 0, sum2 = 0;
scanf("%d", &n);
if (n == -1)
return sum1 - sum2;
else
{
if (curr % 3 == 0)
{
sum1 += n;
curr++;
}
else
{
sum2 += n;
curr++;
}
sumOfSeq();
}
}