#include<stdio.h>
#include<math.h>
int mode;
float Disc(float a, float b, float c)
{
float disc;
disc = b * b - 4 * a * c;
return disc;
}
void case_1(float a, float b, float c)
{
float p, q, d;
d = Disc(a, b, c);
p = -b / (2 * a);
q = sqrt(d) / (2 * a);
printf("该二次函数有两个实根:\nx1=%-5.2f\nx2=%-5.2f\n", p + q, p - q);
}
void case_2(float a, float b, float c)
{
printf("该二次函数有两个相等实根:x=%-5.2f\n", -b / (2 * a));
}
void case_3(float a, float b, float c)
{
double p, q, d;
d = Disc(a, b, c);
p = -b / (2 * a);
q = sqrt(-d) / (2 * a);
printf("该函数没有实根,但是有两个共轭复根:\nx1 = %-5.2f + %5.2fi\nx2 = %-5.2f - %5.2fi\n", p, q, p, q);
}
void choose(float a, float b, float c)
{
double case_num;
case_num = Disc(a, b, c);
if (case_num > 0) mode = 1;
else if (case_num == 0) mode = 2;
else mode = 3;
}
void main()
{
float a, b, c;
printf("请输入a,b,c的值\n");
scanf_s("%f%f%f", &a, &b, &c);
choose(a, b, c);
switch (mode)
{
case 1: case_1(a, b, c); break;
case 2: case_2(a, b, c); break;
case 3: case_3(a, b, c); break;
}
}
版权声明:本文为o_oDe_lovely原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。