gpt4 book ai didi

c - C中的简单乘法和算术

转载 作者:太空狗 更新时间:2023-10-29 15:51:15 24 4
gpt4 key购买 nike

我的作业是用 C 语言计算二次方程的根,应该很简单,我知道我需要用这个程序做什么,但我还是遇到了问题。当根为虚数且平方根内的项为零时,它可以正常工作。

但是,当我输入系数 a、b 和 c 时,它们给出了实根,但给出了错误的答案,我无法弄清楚哪里出了问题。 (我正在使用 a=2、b = -5 和 c=1 进行测试)

这是我的代码,它编译并运行,但给出了错误的答案。

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

int main()
{
float a, b, c, D, x, x1, x2, y, xi;

printf("Please enter a:\n");
scanf("%f", &a);
printf("Please enter b:\n");
scanf("%f",&b);
printf("Please enter c:\n");
scanf("%f", &c);
printf("The numbers you entered are: a = %f, b = %f, c = %f\n", a, b, c);


D = b*b-4.0*a*c;
printf("D = %f\n", D);
if(D > 0){
x1 = (-b + sqrt(D))/2*a;
x2 = ((-b) - sqrt(D))/2*a;
printf("The two real roots are x1=%fl and x2 = %fl\n", x1, x2);
}
if(D == 0){
x = (-b)/(2*a);
printf("There are two identical roots to this equation, the value of which is: %fl\n", x);
}
if (D<0){
y = sqrt(fabs(D))/(2*a);
xi = (-b)/(2*a);
printf("This equation has imaginary roots which are %fl +/- %fli, where i is the square root of -1.\n", xi, y);
}
return 0;
}

最佳答案

你没有正确计算结果:

x = y / 2*a

实际上被解析为

x = (y / 2) * a

所以你必须在 2*a 两边加上括号。

你想要这个:

x = y / (2 * a)

关于c - C中的简单乘法和算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660740/

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