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

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

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

Есть рекурсия, было сказано ее переделать так, чтобы был счетчик и использовать тип static. Не понимаю что от меня хотят, могу переделать чтобы оно там формально присутствовало, но смысл этого преобразования от меня ускользает. Что это дает и как это сделать так, чтобы смысл не потерялся? Вот это то, что у меня уже написано.
h=(double)(b-a)/n;
res=0;
for (int i=1; i<=n; i++;)
res=res+func(i);
res=res*h;
double func(double a,  double h, int i)
{
double vl;
vl=(double)(a+(i-0,5)h)/((1+(a+(i-0,5)h))*(1+(a+(i-0,5)h)));
return vl;
}

Решение задачи: «Переделать рекурсию так, чтобы был счетчик и использовался тип static»

textual
Листинг программы
/*Описать рекурсивную функцию count_digits(s) целого типа, находящую количество цифр в строке S без
использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках.
*/
 
int count_digits(char* s){
    static int count=0;
    if (isdigit(*s)) count++;
    if (*s=='\0') return count;
    return count_digits(++s);
}

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

  1. Переменная count инициализируется значением 0.
  2. Функция проверяет, является ли первый символ строки s цифрой. Если да, то значение переменной count увеличивается на 1.
  3. Если первый символ строки s равен нулю (что означает, что мы достигли конца строки), то функция возвращает значение переменной count.
  4. В противном случае, функция вызывает саму себя, передавая в качестве аргумента адрес следующего символа в строке s (что достигается путем увеличения указателя s на 1).

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


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

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

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