Ошибка компиляции (error C2447) - C (СИ)
Формулировка задачи:
При компиляции выдает ошибку: error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа). Помогите исправить.
#include<stdio.h>
#include<math.h>
float f1(float);
float f2(float);
float rect(float(*f)(float),float,float);
int main()
{
printf("f1=%f\n",rect(f1,-1,2));
printf("f2=%f\n",rect(f2,0,0.5));
return 0;
}
float f1(float x)
{
return x/((x*x+1)*(x*x+1));
}
float f2(float x)
{
return 4*cos(x)*cos(x);
}
float rect(float(*f)(float x), float a, float b);
{
int i;
float s=0, h=(b-a)/20;
for (i=1;i<=20;i++)
s+=f(a+i*h);
return h*s;
}Решение задачи: «Ошибка компиляции (error C2447)»
textual
Листинг программы
float rect(float(*f)(float x), float a, float b)
Объяснение кода листинга программы
В данном коде представлен прототип функции rect, которая принимает три аргумента:
f- указатель на функцию, которая принимает один аргумент типа float и возвращает значение типа float.a- аргумент функцииf.b- аргумент функцииf. Код не содержит тела функции, поэтому нельзя сказать, что именно происходит внутри функцииrect. Но можно предположить, что функцияrectможет использоваться для вычисления площади прямоугольника, используя формулуS = a*b, гдеaиb- значения, передаваемые в функциюf. Номера элементов в списке:- 1 - начало прототипа функции
rect - 2 - объявление первого аргумента
f - 3 - объявление второго аргумента
a - 4 - объявление третьего аргумента
b - 5 - конец прототипа функции
rect