m0_72849156 2022-11-01 10:27 采纳率: 0%
浏览 64
已结题

二分法求方程的根的疑问

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
double a(double x)
{
    return 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
}
double b(double x1, double x2, double(*c)(double))
{
    double d;
    do
    {
        d = (x1 + x2) / 2;
        if ((*c)(d) * (*c)(x1) > 0)
            x1 = d;
        else
            x2 = d;
    } while ((*c)(d) >= 1e-6);
    return d;
}
int main(void)
{
    double x1, x2;
    double a(double);
    double b(double, double, double);
    double(*c)(double);
    c = a;
    do 
    {
        scanf_s("%lf,%lf", &x1, &x2);
    } 
    while ((*c)(x1) * (*c)(x2) > 0);
    printf("%lf",b(x1,x2,*c));
    return 0;

为什么*c有问题;而且我把b函数删了就没有问题,为什么;为什么我可以删b函数不可以删a函数?
  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-11-01 10:36
    关注
    获得7.50元问题酬金

    b函数第三个参数是double类型,但你实际调用b函数却用 * c作为参数?
    main中b函数的申明,和前面的b函数定义中的第三个参数是不一样的啊
    修改main函数中的b函数声明为:
    double b(double, double, double(*c)(double));

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<math.h>
    using namespace std;
    double a(double x)
    {
        return 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
    }
    double b(double x1, double x2, double(*c)(double))
    {
        double d;
        do
        {
            d = (x1 + x2) / 2;
            if ((*c)(d) * (*c)(x1) > 0)
                x1 = d;
            else
                x2 = d;
        } while ((*c)(d) >= 1e-6);
        return d;
    }
    int main(void)
    {
        double x1, x2;
        double a(double);
        double b(double, double,  double(*c)(double));
        double(*c)(double);
        c = a;
        do 
        {
            scanf_s("%lf,%lf", &x1, &x2);
        } 
        while ((*c)(x1) * (*c)(x2) > 0);
        printf("%lf",b(x1,x2,*c));
        return 0;
     
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 赞助了问题酬金15元 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 zabbix6.4与frp如何进行联动
  • ¥15 如何使用Echarts制作途中时间序列表
  • ¥15 图论相关的数学问题,共10个
  • ¥15 EtherCAT的问题,创建一个XML文件
  • ¥15 微信公众号羽毛球自动抢定场程序制作
  • ¥15 Fluent UDF 编写
  • ¥15 xcode开发的macos应用,如何使窗口居中显示?
  • ¥20 统信uos升级apt后启动失败
  • ¥15 求指导储层饱和度及含水率测井解释
  • ¥200 建三维地震工区写入sgy到指定目录