作业帮 > 综合 > 作业

求一元二次方程的根编写一个函数void root(float a,float b,float c,float *p,fl

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/27 22:41:05
求一元二次方程的根
编写一个函数void root(float a,float b,float c,float *p,float *q) .功能是求主函数中的方程的实根x1和x2(假设Δ>0),p和q存放x1和x2的地址,函数中求出的实根通过p和q存入主函数的x1和x2.
#include <math.h>
void root(float a, float b, float c, float *p, float *q)
{
    *p = ( -b + sqrt( b * b - 4 * a * c ) ) / 2 * a;
    *q = ( -b - sqrt( b * b - 4 * a * c ) ) / 2 * a;
}
再问: main ()
{float d,e,f,*x1,*x2;
scanf("%f,%f,%f",&d,&e,&f);
void root(d,e,f,*x1,*x2);

printf("x1=%f,x2=%f",*x1,*x2);
}
麻烦问下我这后面主函数怎么错了,用的上面的函数
再答: #include <math.h>
#include <stdio.h>

void root(float a, float b, float c, float *p, float *q);

int main()
{
    float d, e, f;
    float r1, r2, *x1 , *x2;
    
    // 初始化指针变量
    x1 = &r1; x2 = &r2;
    // 输入: 1,2,1
    scanf("%f,%f,%f", &d, &e, &f);
    
    root(d, e, f, x1, x2);
    // 或者 root(d, e, f, &r1, &r2);
    
    printf("x1=%f,x2=%f", *x1, *x2);
    // 或者 printf("x1=%f,x2=%f", r1, r2);
    return 0;
}

void root(float a, float b, float c, float *p, float *q)
{
   *p = ( -b + sqrt( b * b - 4 * a * c ) ) / 2 * a;
   *q = ( -b - sqrt( b * b - 4 * a * c ) ) / 2 * a;
}
再问: 懂了 谢谢 概念有点乱