问题描述
我对 C 还很陌生,我刚开始接触一些初学者的问题。我在下面写的代码似乎正确,但答案不正确。有谁能帮我算一下吗?
#include<stdlib.h>
#include<stdio.h>
int main() {
system("cls");
int a,b,c;
float x,y,bac,bbac;
printf("Enter value of a,& c\n");
scanf("%d %d %d",&a,&b,&c);
bac = b*b-4*a*c;
bbac = sqrt(bac);
if (bac<0) {
printf("The roots are imaginary");
} else {
x = (-b+bbac)/2*a;
y = (-b+bbac)/2*a;
printf("Roots are %f & %f",x,y);
}
return 0;
}
解决方法
您正在为 x
和 y
计算相同的值。其中之一应该有 -b-bbac
。
x = (-b+bbac)/(2*a);
y = (-b-bbac)/(2*a);