题目
本题是谭浩强《C程序设计课后习题》题7.2。
题目:
2、求方程
a
x
2
+
b
x
+
c
=
0
{ax}^2+bx+c=0
ax2+bx+c=0的根,用3个函数分别求当:
b
2
−
4
a
c
b^2- 4ac
b2−4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c 的值。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
根据图上的公式转为c语言的数学代码即可,在使用sqrt函数时记得要引用math.h函数库。
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
#include<math.h>
2.主函数部分
代码如下(示例):
float disc;//定义全局变量判别式
float x1, x2;
float p, q;
void greater(int a, int b)//大于0的情况
{
x1 = (-b + sqrt(disc)) / 2 * a;
x2 = (-b - sqrt(disc)) / 2 * a;
}
void equal(int a, int b)//等于0的情况
{
x1 = x2 = (-b) / 2 * a;
}
void less(int a, int b)//小于0的情况
{
p = (-b) / 2 * a;
q = sqrt(-(disc)) / 2 * a;
}
void main()
{
int a, b, c;
printf("请输入a,b,c的值:");
scanf("%d %d %d", &a, &b, &c);
disc = b * b - 4 * a * c;
if (disc > 0)
{
greater(a, b);
printf("该方程在判别式>0时的两根为:%.2f||%.2f", x1, x2);
}
else if (disc = 0)
{
equal(a, b);
printf("该方程在判别式=0时的两根为:%.2f||%.2f", x1, x2);
}
else
{
less(a, b);
printf("该方程在判别式<0时的两根为:%.2f||%.2f", p+q, p-q);
}
}
三、执行结果
输入:
请输入a,b,c的值:1 5 3
输出:
该方程在判别式>0时的两根为:-0.70||-4.30