1.程序语言
#include<stdio.h>
#include<math.h>
void WT1(float a, float b, float c,float disc);
void WT2(float a, float b, float c,float disc);
void WT3(float a, float b, float c,float disc);
void main()
{
float disc;
float a, b, c, x1, x2;
printf(“请输入三个数”);
scanf("%f%f%f", &a, &b, &c);
if (fabs(a) <= 1e-6) `` //判定是否为二元一次方程;
{
printf(“不是二元一次方程,请重新输入”);
}
else
{
disc = bb - 4 * ac;
if (fabs(disc) <=1e-6) //有两个相等的实数根的情况
{
WT1(a, b, c,disc);
}
else if (disc > 1e-6) //有两个不等的实数根的情况
{
WT2(a, b, c,disc);
}
else //有复数根的情况
{
WT3(a, b, c,disc);
}
}
}
void WT1(float a, float b, float c,float disc) //定义根
{
float x1;
x1 = -b / (2 * a);
printf(“有两个相等的实数根:%8.4f\n”,x1);
}
void WT2(float a, float b, float c,float disc)
{
float x1, x2;
x1 = (-b + sqrt(disc)) / (2 * a);
x2 = (-b - sqrt(disc)) / (2 * a);
printf(“有两个不相等的实数根:%8.4f and %8.4f\n”, x1, x2);
}
void WT3(float a, float b, float c,float disc)
{
float realpart, imagpart;
realpart = -b / (2 * a);
imagpart = sqrt(-disc) / (2 * a);
printf(“有复根:\n”);
printf("%8.4f+%8.4fi\n", realpart , imagpart);
printf("%8.4f-%8.4fi\n", realpart , imagpart);
}`
2.结果演示