本文主要是介绍C语言题目:一元二次方程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
解一元二次方程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;
}
这篇关于C语言题目:一元二次方程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!