Я пытаюсь распечатать результат моей возвращенной суммы, но по какой-то причине он выводит 0, но когда я проверяю сумму внутри функции, ее выполнение цели правильно. Например, если я передаю массив из 10 элементов, каждый из которых равен их индексу (0 ... 9), сумма внутри функции равна 45, но когда я распечатываю ее обратно в main(), она печатает 0. Я действительно смущен по меньшей мере.Рекурсия Сумма массива
Вот моя функция, которую я называю использованием:
printf("%d\n", addArray3(arrayA, 9, 0));
Чтобы уточнить, Arraya является указателем на 10 item'd массив целых чисел.
// Sums array using recursion
int addArray3(int (*arrayA)[], int n, int sum){
if (n<0){
return sum;
} else {
sum += (*arrayA)[n];
}
addArray3(arrayA, --n, sum);
}
Если кто-то может прояснить это, я бы очень признателен, спасибо!
Конечно, ваш компилятор дает предупреждение при компиляции этого кода. Не игнорируйте предупреждения! – kaylum