码迷,mamicode.com
首页 > 其他好文 > 详细

求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

时间:2020-07-21 22:39:46      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:ret   oid   高中   lazy   clu   lin   can   输出   代码   

求方程 \({ax}^2+bx+c=0\)的根,用3个函数分别求当: \(b^2-4ac\)大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

题目解析

根据disc = \(b^2-4ac\) 的值来决定如何求根,题目本身编程不难,不过需要同学们复习一下高中的数学知识哦。

代码示例

#include<stdio.h>
#include<math.h>

//x1为第一个根,x2为第二个根
float x1, x2, disc, p, q;

void greater_than_zero(float a, float b)
{
	float m = sqrt(disc);
	x1 = (-b + sqrt(disc)) / (2 * a);
	x2 = (-b - sqrt(disc)) / (2 * a);
}

void equal_to_zero(float a, float b)
{
	x1 = x2 = (-b) / (2 * a);
}

void smaller_than_zero(float a, float b)
{
	p = -b / (2 * a);
	q = sqrt(-disc) / (2 * a);
}

int main()
{
	int a, b, c;
	printf("请输入 a b c:");
	scanf("%d %d %d", &a, &b, &c);

	printf("表达式为: %d*x^2+%d*x+%d = 0\n", a, b, c);
	disc = b*b - 4 * a*c;

	if (disc > 0)
	{
		greater_than_zero(a, b);
		printf("disc>0的根为: x1=%f    x2=%f\n", x1, x2);
	}
	else if (disc == 0)
	{
		equal_to_zero(a, b);
		printf("disc==0的根为:x1=%f    x2=%f\n", x1, x2);
	}
	else
	{
		smaller_than_zero(a, b);
		printf("disc<0的根为:x1=%f+%f x2=%f-%f\n", p, q, p, q);
	}
	return 0;
}

运行结果:

技术图片

求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

标签:ret   oid   高中   lazy   clu   lin   can   输出   代码   

原文地址:https://www.cnblogs.com/inta/p/13356694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!