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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void f(int *arr, int *sum, int *n){
  5.     if( arr[*n] > 0){
  6.         *sum += arr[*n];
  7.         (*n)++;
  8.         f(arr, sum, n);
  9.     }
  10. }
  11.  
  12. int main(int argc, char *argv[]){
  13.     int num = 0;
  14.     printf("Write number of elements:\n");
  15.     scanf("%d", &num);
  16.  
  17.     int *arr = (int *)calloc(num, sizeof(int));
  18.     printf("Write elements of array:\n");
  19.     for(int i=0;i<num;i++)
  20.         scanf("%d", &arr[i]);
  21.  
  22.     int sum = 0, n = 0;
  23.    
  24.     f(arr, &sum, &n);
  25.  
  26.     printf("sum: %d\nnumber of elements in sum: %d\n", sum, n);
  27.  
  28.     return 0;
  29. }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы