#include <stdio.h>

#include <math.h>


double func(double x)

{

return sin(x); //임의의 함수를 정의

}


int main()

{

double a, b; // a는 적분구간의 시작값, b는 적분구간의 끝값

scanf_s(" %lf %lf", &a, &b);

double section = b - a; // 적분할 구간의 길이

double intervals = 100; // 적분할 구간을 100개의 작은 구간으로 분할

double total = 0;

double integral;

int i;

for (i = 0; i <= intervals; i++)

{

if (i == 0 || i == 100)

{

total += func(a + section * i / intervals);

}

else

{

if (i % 2 == 1)

{

total += 4 * func(a + section * i / intervals);

}

else

{

total += 2 * func(a + section * i / intervals);

}

}

}

integral = total * section / intervals / 3;

printf("적분값 : %.6lf\n", integral);

return 0;

}



오차도 거의 없을 정도로 정교하다.