C语言,期末救急输入三个系数,判断一元二次方程的解(代码逐行逐句的解释,看到最后有知识的总结)

本文详细解析了如何使用C语言求解二次方程,包括方程的各种情况:实根、虚根及重根,并提供了完整的代码示例。

 1,导语

对于这种C语言方程问题,稍微接触过C语言都知道,然而老师上课可能是这样子的

然而当你跟着老师打完代码后,在理想状态下你会得到这样 

 

 嗯,退坑的心都有了,老实说上课老师讲的我也不懂,但这些东西对于我们小白来说很难一下子汲取到那么多知识,所以我用我的浅薄的知识将代码逐行逐句的解释,并且在后面有知识的总结

2,对应代码

#include <stdio.h>
#include <math.h>//因为后面要引用数学公式,故要利用此头文件
void main()
{
	float x1, x2, a, b, c, delta, shibu, xubu;/*定义几个变量为浮点类型,后面的三个分别是德尔塔,实部,虚部*/
	printf("请输入三个值作为方程系数:\n");//C语言打印的基本格式printf("xx\n");其中\n为转行
	scanf_s("%f,%f,%f", &a, &b, &c);/*C语言中获取外界输入(scanf_s这里的_s因为本人用的是vs内部有些bug所以自加防止报错)*/
	
	if (fabs(a) <= 1e-6)//下文有解释
		printf("这不是二次方程\n");
	else
	{
		delta = b * b - 4 * a * c;//德尔塔的数学格式
		if (fabs(delta) <= 1e-6)
			printf("结果为两个相同的实数根:%8.4f", -b / (2 * a));/*%8.4f意思是打印8个宽度再加4位小数*/
		else if (delta > 1e-6)
		{
			x1 = (-b + sqrt(delta)) / (2 * a);//sqrt的意思为平方根号
			x2 = (-b - sqrt(delta)) / (2 * a);
			printf("结果有两个不同的实数根:%8.4f and %8.4f\n", x1, x2);
		}
		else
		{
			shibu = -b / (2 * a);
			xubu = sqrt(-delta) / (2 * a);
			printf("结果为两个共轭复根:\n");
			printf("%8.4f+%8.4fi\n", shibu,xubu);//复根公式下面会给
			printf("%8.4f-%8.4fi\n" ,shibu,xubu);
		}

	}

}

 3,对应公式

 4,对应知识点

1,

fabs()函数是返回某一个值的绝对值的一个函数

例如,fabs(a)就是返回a的绝对值

1e-6表示的是浮点数。也就是1*10的-6次方。

而之所以这么写其意义等价于a==0(对于为什么不直接写我的想法是因为引用了math.h的头文件)对此欢迎各位大佬解答

总之这是一个很棒的题,你能学到if语句嵌套,数学公式的使用等等况且这类题很容易变成期末考试的题目,最后让我们一起加油吧

目录

 1,导语

2,对应代码

 3,对应公式

 4,对应知识点


评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值