C语言:一元二次方程解的所有情况

从键盘任意输入a,b,c的值,编程计算并输出一元二次方程ax2+bx+c=0的根,当a=0时,输出“该方程不是一元二次方程”,当a≠0时,分b24ac>0b24ac=0b24ac<0三种情况计算并输出方程的根。
**输入格式要求:"%f,%f,%f"  提示信息:"Please enter the coefficients a,b,c:"
**输出格式要求:"It is not a quadratic equation!\n"  "x1 = x2 = %.2f\n"  "x1 = %.2f, x2 = %.2f\n" 
"x1 = %.2f+%.2fi, "  "x2 = %.2f-%.2fi\n"
程序运行示例1如下:
Please enter the coefficients a,b,c:0,10,2
It is not a quadratic equation!
程序运行示例2如下:
Please enter the coefficients a,b,c:1,2,1
x1 = x2 = -1.00
程序运行示例3如下:
Please enter the coefficients a,b,c:2,3,2
x1 = -0.75+0.66i, x2 = -0.75-0.66i
变量定义为float类型,精度要求为1e-6,即
#define   EPS 1e-6
复制代码
 1 #include<stdio.h>
 2 #include<math.h>
 3 #define   EPS 1e-6
 4 main() {
 5     float a, b, c, d, x1, x2, i;
 6     printf("Please enter the coefficients a,b,c:");
 7     scanf("%f,%f,%f", &a, &b, &c);
 8     d = b * b - 4 * a * c;
 9     if (fabs(a)<=0)
10         printf("It is not a quadratic equation!\n");
11     else 
12     {
13         if (d<0) 
14         {
15             x1 = -b / (2 * a);
16             i = sqrt(-d) / (2 * a);
17             printf("x1 = %.2f+%.2fi," , x1, i);
18             printf("x2 = %.2f-%.2fi\n" , x1, i);
19         } 
20         else if (fabs(d) > EPS) 
21         {
22             x1 = (-b + sqrt(d)) / (2 * a);
23             x2 = (-b - sqrt(d)) / (2 * a);
24             printf("x1 = %.2f, x2 = %.2f\n", x1, x2);
25         } 
26         else if (fabs(d)<=EPS)
27             printf("x1 = x2 = %.2f\n", -b / (2 * a));
28     }
29 
30 }
复制代码

 



posted @   油菜园12号  阅读(429)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示