gpt4 book ai didi

c - 使用 C 求解 ax^2+bx+c=0 方程

转载 作者:行者123 更新时间:2023-11-30 21:41:30 25 4
gpt4 key购买 nike

**当我运行程序时,它总是给我虚数作为答案,尽管我更改了 a、b 和 c 的值 **

#include <stdio.h>
#include <math.h>
main()
{
float X, X1, X2, d, a,b,c;
printf("Square Equation Solve\n");
printf("\nGive the Values of a,b&c:\n");
scanf("%f%f%",&a,&b,&c);
d=(b*b-(4.0*a*c));

if (d=0)
{
X=b/2*a;
printf("\nX=%f",X);

}
else if (d>0)
{
X1=(-b+sqrt(d))/(2.0*a);
X2=(-b-sqrt(d))/(2.0*a);
printf("\nX1=%f",X1);
printf("\nX2=%f",X2);

}
else
{
printf("\nThe Answer is Imaginary Number\n");
}


}

我每次都得到相同的答案。它告诉我答案是虚数。

最佳答案

问题出在您的第一个 if 语句中:

if (d=0)

这不是将 d 与 0 进行比较,而是将 0 赋值给 d。然后,该表达式采用赋值的值,即 0,其计算结果为 false。这反过来会导致 else if (d>0) 计算结果为 false,从而使您进入最后的 else 条件。

将赋值运算符更改为比较:

if (d==0)

如果您使用-Wall -Wextra进行编译,它会警告您:

warning: suggest parentheses around assignment used as truth value

关于c - 使用 C 求解 ax^2+bx+c=0 方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com