Используя рекурсию, подсчитать количество чисел и их сумму - 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; }
Объяснение кода листинга программы
В данном коде реализована рекурсивная функция для подсчета суммы элементов в массиве.
- Объявлены три переменные: — num - количество элементов в массиве — arr - указатель на массив — sum - сумма элементов массива
- Введенный пользователем размер массива сохраняется в переменной num
- С помощью функции calloc выделяется память под массив заданного размера
- Пользователю предлагается ввести элементы массива, которые сохраняются в переменной arr
- Инициализируются переменные sum и n, которые будут использоваться в рекурсивной функции
- Рекурсивная функция f вызывается с аргументами arr, sum и n
- В функции f происходит проверка: если элемент массива больше нуля, то он прибавляется к сумме и увеличивается счетчик элементов n
- Рекурсивный вызов функции f происходит до тех пор, пока не будет достигнут конец массива (элемент с отрицательным значением)
- После окончания рекурсии выводится сумма элементов массива и количество элементов, участвующих в суммировании
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д