闲敲棋子落灯花- 2015-10-26 13:24 采纳率: 68.4%
浏览 1609
已采纳

一个求函数的积分的程序执行问题

#define _CRT_SECURE_NO_DEPRECATE

#include

double integrate(double, double, int);

double equa(double); /*函数说明,背积函数,具体函数可替换*/

float a, b, c;

void main() {

double  leftlimit, rightlimit;/*积分上限,下限*/

int  n;/*梯形划分数*/  

printf("请输入被积分函数的系数:a,b,c:\n");

scanf("%f%f%f", &a, &b, &c);

printf("请输入被积分函数的上限及下限:\n");

do {

    scanf("%lf%lf", &leftlimit, &rightlimit);

    if (leftlimit > rightlimit)  printf("积分下限应该小于上限,请重新输入:");


} while (leftlimit < rightlimit);

printf("请输入被积分函数的划分数(要求正整数):\n");


getchar();
scanf("%d", &n);

if (n < 0)  n = -n;/*对用户输入的负整数进行取正*/

printf("积分结果为=%.2f\n", integrate(leftlimit, rightlimit,n));


system("pause");

}
/*积分求解函数*/

double integrate(double lower, double upper, int n) {

double  h, si, area = 0;

int  i;

h = (upper - lower) / n;

for (i = 0;i < n;i++) {

    si = h*(equa(lower + i*h) + equa(lower + (i + 1)*h)) / 2;

    area = si + area;


}

return  area;

}

/*被积函数*/

double equa(double xi) {

return   a*xi*xi + b*xi + c;

}

  • 写回答

3条回答 默认 最新

  • cxlovu 2015-10-26 13:43
    关注

    这段函数写的有问题

      do
        {
    
            scanf("%lf%lf", &leftlimit, &rightlimit);
    
            if (leftlimit > rightlimit)  printf("积分下限应该小于上限,请重新输入:");
    
    
        }
        while (leftlimit < rightlimit);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘