要求:分别输入二次项系数,一次项系数,常数项,输出解的结果
思路:1.首先判断是否有解,如果有解判断是一个解还是两个解
2.分别编写一个解时的函数和两个解时的函数
数学计算的头文件math.h --- 这里我用的是pow次方,math.h中包含开平方的函数sqrt
#include<stdio.h>
#include<math.h>
float one_root(float a, float b)
{
float re = 0;
re = -b / 2 * a;
return re;
}
void tow_root(float a, float b, float db)
{
float x1 = 0, x2 = 0;
float v1 = 0, v2 = 0;
v1 = -b + pow(db, 1.0 / 2);
v2 = -b - pow(db, 1.0 / 2);
x1 = v1 / 2 * a;
x2 = v2 / 2 * a;
printf("x1=%.2f x2=%.2f\n", x1, x2);
}
int main()
{
float a, b, c;//分别对应二次项系数,一次项系数,常数
float db = 0; // b*b - 4*a*c
scanf("%f %f %f", &a, &b, &c);
db = b * b - 4 * a * c;
if (db < 0) //判断是否有解
printf("无解\n");
else if (db == 0)
printf("x=%.2f\n",one_root(a, b)); // 两个相同的解
else
tow_root(a, b, db); // 两个不同的解
return 0;
}