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)
这条线有潜在的危险,因为它有时会计算负数的平方根。如果您希望能够处理复杂的根,则必须为此自定义构建解决方案。
你可以用这个改变的是验证输入不会导致它为负。
我正在尝试用 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)
这条线有潜在的危险,因为它有时会计算负数的平方根。如果您希望能够处理复杂的根,则必须为此自定义构建解决方案。
你可以用这个改变的是验证输入不会导致它为负。