编写C程序,求方程ax2+bx+c=0的解

该程序的功能为:求方程ax2+bx+c=0的解 要求:在主函数中,通过键盘分别输入三个整数存入全局变量(a,b,c)中,调用“一元二次方程的求根”子函数“int root()”;对该“一元二次方程”求根值,并在主函数中输出其对应根值

#include<stdio.h>
#include<math.h>
void f1(int a,int b,int c);
void f2(int a,int b,int c);
void f3(int a,int b,int c);
int a,b,c;
int main()
{
    
    double t;
    printf("请输入a b c\n");
    scanf("%d %d %d",&a,&b,&c);
    printf("原方程为%dx^2+%dx+%d=0\n",a,b,c);
    t=b*b-4*a*c;
    if(t>0)
    {
        f1(a,b,c);
    }
    if(t==0)
    {
        f2(a,b,c);
    }
    if(t<0)
    {
        f3(a,b,c);
    }
    return 0;
}
void f1(int a,int b,int c)
{
    double x1,x2,t;
    t=b*b-4*a*c;
    x1=(-b+sqrt(t))/(2*a);
    x2=(-b-sqrt(t))/(2*a);
    printf("x1=%f,x2=%.2f",x1,x2);
}
void f2(int a,int b,int c)
{
    double x1,x2,t;
    t=b*b-4*a*c;
    x1=(-b+sqrt(t))/(2*a);
    x2=x1;
    printf("x1=x2=%.2f",x1);
}
void f3(int a,int b,int c)
{
    printf("无实根\n");
}

img

#include<stdio.h>
#include<math.h>
float a,b,c;
void m(float &x1,float &x2)
{
    x1=(-b-sqrt(b*b-4*a*c))/(2*a);
    x2=(-b+sqrt(b*b-4*a*c))/(2*a);
}
 
void m1(float &x)
{
    x=(-b)/2*a;
}
 
void main()
{
    double sum;
    printf("请输入a,b,c系数:");
    scanf("%f%f%f",&a,&b,&c);
    printf("方程为:%2.2fx^2+%2.2fx+%2.2f=0\n",a,b,c);
        sum=b*b-4*a*c;
        float x1,x2;
    if(sum>0)
        {
        m(x1,x2);
                printf("方程有两个根 x1=%.2f,x2=%.2f\n",x1,x2);
        }
    else if(sum==0)
        {
        m1(x1);
                printf("方程有一个根 x=%.2f,\n",x1);
        }
    else printf("方程无解!!!\n");
}