Передача функции как параметра. - 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д