如何用C语言编写程序求解二次方程的根?
问题
应用软件开发方法来解决C语言中的任何问题。
解决方案
- 求解二次方程 ax2+bx+c 的根。
- 给定的二次方程将有两个根。
分析
输入 − a、b、c 值
输出 − r1、r2 值
步骤
$r_{1}=\frac{-b+\sqrt{b^2-4ac}}{2a}$
$r_{2}=\frac{-b-\sqrt{b^2-4ac}}{2a}$
设计(算法)
- 开始
- 读取 a、b、c 值
- 计算 d = b2 - 4ac
- 如果 d > 0,则
- r1 = (-b + sqrt(d)) / (2*a)
- r2 = (-b - sqrt(d)) / (2*a)
- 否则,如果 d = 0,则
- 计算 r1 = -b/(2a), r2 = -b/(2a)
- 打印 r1、r2 值
- 否则,如果 d < 0,则打印根是虚数
- 结束

代码实现
# include<stdio.h>
# include<math.h>
int main () {
float a,b,c,r1,r2,d;
printf ("Enter the values of a b c: ");
scanf (" %f %f %f", &a, &b, &c);
d= b*b - 4*a*c;
if (d>0) {
r1 = -b+sqrt (d) / (2*a);
r2 = -b-sqrt (d) / (2*a);
printf ("The real roots = %f %f", r1, r2);
}
else if (d==0) {
r1 = -b/(2*a);
r2 = -b/(2*a);
printf ("Roots are equal =%f %f", r1, r2);
}
else
printf("Roots are imaginary");
return 0;
}
测试
Case 1:
Enter the values of a b c: 1 4 3
The real roots = -3.000000 -5.000000
Case 2:
Enter the values of a b c: 1 2 1
Roots are equal =-1.000000 -1.000000
Case 3:
Enter the values of a b c: 1 1 4
Roots are imaginary
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP