#include<stdio.h>
#include<math.h>
long double fsin(int x, int y) {
long double result;
result = cos(x) - cos(y);
return result;
}
long double fcos(int x, int y) {
long double result;
result = -sin(x) + sin(y);
return result;
}
long double fex(int x, int y) {
long double result;
result = exp(y) - exp(x);
return result;
}
long double Result(int x, int y, long double (*func)(int, int)) {
return ((*func)(x, y));
}
double Isprime(int i){
double result;
switch(i){
case 3: result=0.043864; break;
case 1: result=-0.002154;break;
case 2: result=-0.001029;break;
}
return result;
}
int main() {
int x, y, i;
long double result;
int (*mode[4])(int, int);
mode[1] = fsin;
mode[2] = fcos;
mode[3] = fex;
printf("请输入积分的下限");
scanf("%d", &x);
printf("\n请输入积分的上限\n");
scanf("%d", &y);
printf("请输入你要计算的函数的具体函数\n1.sin(x) 2.cos(x) 3.e^x");
scanf("%d", &i);
result = Result(x, y, mode[i])+Isprime(i);
printf("\n计算的结果为\nres=%llf",result);
}