C求一元二次方程的根

//7.2 求一元二次方程的跟
#include <stdio.h>
#include <math.h>

//定义全局变量 方程的根x1、x2,▲的值d,须根参数p、q
float x1,x2,d,p,q;

//函数声明
void greater_than_zero(float a,float b);
void equal_than_zero(float a,float b);
void smaller_than_zero(float a,float b);

//函数定义
void greater_than_zero(float a,float b)
{
    x1 = (-b + sqrt(d)) / (2 * a);
    x2 = (-b - sqrt(d)) / (2 * a);
    printf("x1 = %f,x2 = %f\n",x1,x2);
}
void equal_than_zero(float a,float b)
{
    x1 = x2 = (-b) / (2 * a);
    printf("x1 = x2 = %f\n",x1);
}
void smaller_than_zero(float a,float b)
{
    p = (-b) / (2 * a);
    q = sqrt(-d) / (2 * a);
    // printf("p = %f,q = %f\n",p,q);
    printf("x1 = %f + %fi,x2 = %f - %fi\n",p,q,p,q);
}

int main()
{
    //定义方程的参数及初始化赋值
    float a,b,c;
    printf("please input a b c:");
    scanf("%f,%f,%f",&a,&b,&c);
    //求▲的值
    d = b * b - 4 * a * c;
    // printf("\nd = %f\n",d);
    //判断▲
    if(d > 0)
        greater_than_zero(a,b);
    else if(d == 0)
        equal_than_zero(a,b);
    else
        smaller_than_zero(a,b);

    return 0;
}

上一篇:习题9-3 平面向量加法 (15 分)PTA


下一篇:windows系列的(xp/win7/server2003/2008/2012...)完美移植到centos7下面的虚拟机(KVM)