Используя рекурсию, подсчитать количество чисел и их сумму - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана последовательность положительных чисел, признаком конца которых служит отрицательное число. Используя рекурсию, подсчитать количество чисел и их сумму. Может кто сможет написать программу на Си. Признателен))

Решение задачи: «Используя рекурсию, подсчитать количество чисел и их сумму»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
void f(int *arr, int *sum, int *n){
    if( arr[*n] > 0){
        *sum += arr[*n];
        (*n)++;
        f(arr, sum, n);
    }
}
 
int main(int argc, char *argv[]){
    int num = 0;
    printf("Write number of elements:\n");
    scanf("%d", &num);
 
    int *arr = (int *)calloc(num, sizeof(int));
    printf("Write elements of array:\n");
    for(int i=0;i<num;i++)
        scanf("%d", &arr[i]);
 
    int sum = 0, n = 0;
    
    f(arr, &sum, &n);
 
    printf("sum: %d\nnumber of elements in sum: %d\n", sum, n);
 
    return 0;
}

Объяснение кода листинга программы

В данном коде реализована рекурсивная функция для подсчета суммы элементов в массиве.

  1. Объявлены три переменные: — num - количество элементов в массиве — arr - указатель на массив — sum - сумма элементов массива
  2. Введенный пользователем размер массива сохраняется в переменной num
  3. С помощью функции calloc выделяется память под массив заданного размера
  4. Пользователю предлагается ввести элементы массива, которые сохраняются в переменной arr
  5. Инициализируются переменные sum и n, которые будут использоваться в рекурсивной функции
  6. Рекурсивная функция f вызывается с аргументами arr, sum и n
  7. В функции f происходит проверка: если элемент массива больше нуля, то он прибавляется к сумме и увеличивается счетчик элементов n
  8. Рекурсивный вызов функции f происходит до тех пор, пока не будет достигнут конец массива (элемент с отрицательным значением)
  9. После окончания рекурсии выводится сумма элементов массива и количество элементов, участвующих в суммировании

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы