Передача функции как параметра. - C (СИ)

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

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

программа должна содержать две функции, одна должна вычислять значение выражения, а другая должна с использованием рекурсии считать произведение некоторого количества полученных значений. при этом вторая функция должна принимать первую как параметр. 1) не компилируется 2) я не знаю как это в теории надо делать
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>
#include <string.h>

int entdate(int a, int b);
double sum(int k, double x);
 
typedef double (*sm)(int, double);
 
double mult(sm a, int n, double x);
 
int main()
{
system ("cls");
 
int n;
double x;
 
printf("N: ");
n=entdate(0, 10000);
printf("\n x: ");
scanf("%e", &x);
printf("Result: %e", mult(&sum(n, x), n, x));
getch();
 
return 0;
}
 
int entcontrol(int a, int b)
{
int bl;
int i,N;
char str[20];
 
do
{
scanf("%s",str);
bl = 1;
for(i=0;i<strlen(str);i++)
 if(!isdigit(str[i]))
{
printf("Error: wrong value\n");
bl=0;
break;
}
if(!bl) continue;
N = atoi(str);
if(N<a || N>b)
{
printf("Error: wrong value\n");
bl = 0;
}
}
while (!bl);
fflush(stdin);
return N;
}
 
double sum(int k, double x)
{
return k/(k+1) - pow(cos(fabs(x)), k);
}
 
double mult(sm a, int n, double x)
{
if( n == 0 ) return 0;
if( n == 1 ) return 1;
return a*mult(&a(n-1, x), n-1, x);
}

Решение задачи: «Передача функции как параметра.»

textual
Листинг программы
double mult(sm a, int n, double x)
{
if( n == 0 ) return 0;
if( n == 1 ) return 1;
return a(n, x)*mult(a, n-1, x);
}

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


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

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

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