C语言题目:一元二次方程

题目描述

解一元二次方程ax^2+bx+c=0的解。

输入格式

a,b,c的值。

输出格式

输出两个解,按照大小顺序输出,一个解时需要打印两次,不用考虑无解问题,保留两位小数

样例输入

1 5 -2

样例输出

0.37 -5.37

代码解析

  1. 首先,代码通过#include <stdio.h>引入了标准输入输出库,以便使用printfscanf等输入输出函数。通过#include <math.h>引入了数学库,以便使用sqrt函数计算平方根。

  2. 使用#define delta b*b-4*a*c定义了一个宏delta,它代表一元二次方程判别式的值。判别式用于判断一元二次方程的根的情况。

  3. 程序定义了main函数,这是C语言程序的入口点。main函数的返回类型是int,表示这个函数最终会返回一个整数值。

  4. main函数内部,首先定义了三个浮点数变量abc,它们分别代表一元二次方程的系数。

  5. 定义了两个双精度浮点数变量x1x2,它们将用于存储方程的两个解。

  6. 使用scanf("%f%f%f", &a, &b, &c);从标准输入读取三个浮点数,分别赋值给变量abc

  7. 接着,使用一元二次方程的求根公式计算两个解。对于一元二次方程 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)
  8. 使用printf("%.2f %.2f\n", x1, x2);输出两个解,%.2f格式说明符表示浮点数输出时保留两位小数。

  9. 最后,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;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值