赞
踩
解一元二次方程ax^2+bx+c=0的解。
a,b,c的值。
输出两个解,按照大小顺序输出,一个解时需要打印两次,不用考虑无解问题,保留两位小数
1 5 -2
0.37 -5.37
首先,代码通过#include <stdio.h>
引入了标准输入输出库,以便使用printf
和scanf
等输入输出函数。通过#include <math.h>
引入了数学库,以便使用sqrt
函数计算平方根。
使用#define delta b*b-4*a*c
定义了一个宏delta
,它代表一元二次方程判别式的值。判别式用于判断一元二次方程的根的情况。
程序定义了main
函数,这是C语言程序的入口点。main
函数的返回类型是int
,表示这个函数最终会返回一个整数值。
在main
函数内部,首先定义了三个浮点数变量a
、b
和c
,它们分别代表一元二次方程的系数。
定义了两个双精度浮点数变量x1
和x2
,它们将用于存储方程的两个解。
使用scanf("%f%f%f", &a, &b, &c);
从标准输入读取三个浮点数,分别赋值给变量a
、b
和c
。
接着,使用一元二次方程的求根公式计算两个解。对于一元二次方程 ax^2 + bx + c = 0ax2+bx+c=0,其两个解可以通过下面的公式得到: x = \frac{-b \pm \sqrt{\Delta}}{2a}x=2a−b±Δ 其中,\DeltaΔ 是判别式,即delta
宏所定义的表达式。
x1
存储的是加上判别式平方根的解:(-b + sqrt(delta)) / (2 * a)
。x2
存储的是减去判别式平方根的解:(-b - sqrt(delta)) / (2 * a)
。使用printf("%.2f %.2f\n", x1, x2);
输出两个解,%.2f
格式说明符表示浮点数输出时保留两位小数。
最后,main
函数返回0,表示程序正常结束。
- #include <stdio.h>
- #include <math.h>
- #define delta b*b-4*a*c
- int main(void)
- {
- float a, b, c;
- double x1, x2;
- scanf("%f%f%f", &a, &b, &c);
- x1 = (-b + sqrt(delta)) / (2 * a);
- x2 = (-b - sqrt(delta)) / (2 * a);
- printf("%.2f %.2f\n", x1, x2);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。