/*写一个用矩阵法求定积分的通用函数,分别求sinx,cosx,exp(x)的定积分*/
#include <stdio.h>
#include <math.h>
#define N 1000
int main()
{
int fun1(double m,double n,double *sum);
int fun2(double m,double n,double *sum);
int fun3(double m,double n,double *sum);
double m,n;
double an;
double *sum = &an;
printf("请输入定积分的上下限:\n");
scanf("%lf %lf",&m,&n);
fun1(m,n,sum);
printf("sinx的定积分是%lf\n",an);
fun2(m,n,sum);
printf("cosx的定积分是%lf\n",an);
fun3(m,n,sum);
printf("exp(x)的定积分是%lf\n",an);
}
//sinx的定积分函数
int fun1(double m,double n,double *sum)
{
double ran;
double i;
ran = fabs(m - n) / N;
*sum = 0.0;
for(i = n;i < m;i = i + ran)
{
*sum = *sum + (sin(i) * ran);
}
}
//cosx的定积分函数
int fun2(double m,double n,double *sum)
{
double ran;
double i;
ran = fabs(m - n) / N;
*sum = 0.0;
for(i = n;i < m;i = i + ran)
{
*sum = *sum + (cos(i) * ran);
}
}
//exp(x)的定积分函数
int fun3(double m,double n,double *sum)
{
double ran;
double i;
ran = fabs(m - n) / N;
*sum = 0.0;
for(i = n;i < m;i = i + ran)
{
*sum = *sum + (exp(i) * ran);
}
}
谭浩强C程序设计(第四版)p292第13题
指针真是烦!!!!
一开始看到矩阵法我还奇怪,后来发现就是我学的微元法。
数据类型也很烦!!!!!