C 中的二次函数

Quadratic Function in C

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

这是我的代码:

#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);
}

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

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

你可以用这个改变的是验证输入不会导致它为负。