c语言初步经典题14--计算一元二次方程的根

题目:

有一方程ax^2+bx+c=0,a,b,c的值由键盘输入,输出方程的根。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>//要使用sqrt()必须包含这个头文件
#define DELTA   b*b -4*a*c
int main()
{
    double a, b, c;

    printf("请输一元二次方程的三个系数a、b、c:\n");
    scanf("%lf %lf %lf", &a, &b, &c);
    if (0==a && b !=0)
    {
        printf("x = %f\n", -c / b);
    }
    else if (0 == a && 0 == b && 0 == c)
    {
        printf("x = 全体实数\n");
    }//以上两种情况不属于一元二次方程,但是最好也考虑一下,因为后面的a会作为分母
    else if (DELTA >= 0)
    {
        if (DELTA > 0)
        {
            printf("x1 = %lf x2 = %lf\n", (-b + sqrt(DELTA)) / (2 * a), (-b - sqrt(DELTA)) / (2 * a));
        }
        else
        {
            printf("x1 = %lf\n", -b / (2 * a));
        }
    }
    else
    {
        printf("无解\n");
    }
    system("pause");
    return 0;
}

使用软件:vs2013
运行结果:
这里写图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页