gpt4 book ai didi

c - C语言编程中求二次方程的根

转载 作者:行者123 更新时间:2023-11-30 20:50:12 24 4
gpt4 key购买 nike

这是一个问题:编写一个 C 程序来读取二次方程的系数并打印其带有两位小数的根。

我的代码:

#include<stdio.h>
#include<math.h>
int main() {
float a,b,c;
float root1;
float root2;
root1=(-b+sqrt(b*b-4*a*c))/2*a;
root2=(-b-sqrt(b*b-4*a*c))/2*a;
scanf("%f %f %f",a,b,c);
printf("%f +f",root1,root2);

return 0;
}

以下是错误:

/tmp/ccYLQQBg.o:在函数 main':
hello.c:(.text+0x61): undefined reference to
中平方根'hello.c:(.text+0xc9): 对 `sqrt' 的 undefined reference collect2:错误:ld 返回 1 退出状态

我该如何解决这个问题?我的代码有什么问题?谢谢 :)新代码:

#include<stdio.h>
#include<math.h>
int main(){
float a,b,c;
float root1=(-b-sqrt(b*b-4*a*c))/(2*a);
float root2=(sqrt(b*b-4*a*c))/(2*a);
scanf("%f %f %f",&a,&b,&c);
printf("%f %f\n",root1,root2);
return 0;
}

但是仍然有错误。输出始终为 -nan 和 nan如果我去掉 2*a 周围的括号,则无论系数值如何,输出都是 -0 和 0。

最佳答案

您需要链接到数学库,例如

gcc -o myprog myprog.c -lm

关于c - C语言编程中求二次方程的根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065791/

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