C中的二次函数

时间:2018-02-23 01:50:18

标签: c quadratic

我正在尝试用C构建一个小的二次计算器,但无论我的输入是什么,我都得到以下结果....

enter image description here

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
float a, b, c;

printf("Enter a:");
scanf("%f", &a);
printf("Enter b:");
scanf("%f", &b);
printf("Enter c:");
scanf("%f", &c);

float discriminant = sqrt(b*b - 4*a*c);
float root1 = (-b + discriminant) / (2*a);
float root2 = (-b - discriminant) / (2*a);

printf("Root 1: %f\n", root1);
printf("Root 2: %f\n", root2);
}

1 个答案:

答案 0 :(得分:2)

float discriminant = sqrt(b*b - 4*a*c)

此行有潜在危险,因为它有时会执行负数的平方根。如果您希望能够处理复杂的根,那么您必须为此自定义构建解决方案。

您可以更改的是仅验证输入不会导致输入为负。