利用C语言进行常见的数学运算:一元二次方程求根

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根 并保留两位小数

#include <stdio.h>                                                                        //使用printf,scanf函数
#include <math.h>                                                                       //使用sqrt(开平方)函数
int main() 
{
    float a, b, c;                                                                               //定义浮点型变量,防止后续除法运算时,计算机截掉小数部分
    float x1, x2;
    while (scanf("%f %f %f", &a, &b, &c) != EOF)                         //循环判断本次输入是否结束,用于多行输入
    {
        float der = (b * b - 4 * a * c);      //定义数学中德尔塔
        if (a == 0)printf("Not quadratic equation");                        //判断是否是一元二次方程
        else {
            if (der > 0) {
                x1 = (-b) / (2 * a) - (sqrt(der) / (2 * a));      
                x2 = (-b) / (2 * a) + (sqrt(der) / (2 * a));
                printf("x1=%.2f;x2=%.2f\n", x1, x2);
            } 
                else if (der == 0) {
                x1 = x2 = (-b) / (2 * a);
                {
                    if (x1 == (-0.00)) {
                        printf("x1=x2=0.00\n");
                    }
                    else {
                        printf("x1=x2=%.2f\n", x1);
                    }
                }
            } 
            else if (der < 0) {
                float s, y;
                s = (-b) / (2 * a);
                y = sqrt(-der) / (2 * a);                                                   //计算机无法对负数进行开平方运算
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", s, y, s, y);       //输出时应手动添加数学意义上的虚部标识符‘i’
            }
        }
    }
    return 0;
}
posted @   林大官人995  阅读(99)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示