源码如下
# include <stdio.h>
# include <math.h>
main ()//二次函数的开口,交点,最值,对称轴
{
int a =- 3; //一元二次方程的系数a
int b = 5;//一元二次方程的系数b
int c = 6;//一元二次方程的系数c
float e = (-b) / (2*a);//对称轴
float d = (4*a*c - b*b) / (4*c) ;//最大值
float delta = b*b - 4*a*c;//判别式
float x1;//其中一个解
float x2;//其中一个解
if (a > 0)//开口向上
{
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数抛物线开口朝上\n该二次函数与x轴有两个解有两个交点,第一个交点是%f,0.第二个交点是 %f,0\n函数最小值是%f\n该二次函数的对称轴是%f",x1,x2,d,e);
}
else if (delta==0)//判别式等于0,有两个相同解
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该该二次函数开口向上\n二次函数与x轴有一个交点,是 %f,0\n,函数最小值是0\n该二次函数的对称轴是%f",x1,e);
}
else if (delta<0)
{
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数开口向上\n该二次函数与x轴无交点,函数最小值是%f\n该二次函数的对称轴是%f",d,e);//判别式小于0,无解
}
}
else if (a<0)//开口向下
{
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数抛物线开口朝下\n该二次函数与x轴有两个解有两个交点,第一个是%f, 0第二个是%f,0\n,函数最大值是%f\n该二次函数的对称轴是%f",x1,x2,d,e);
}
else if (delta==0)//判别式等于0,有两个相同解
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该二次函数开口朝下,该二次函数与x轴有一个交点,是 %f,0\n,函数最大值是0\n该二次函数的对称轴是%f",x1,e);
}
else if (delta<0)
{
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数开口朝下\n该二次函数与x轴无交点,函数最大值是%f\n该二次函数的对称轴是%f",d,e);//判别式小于0,无解
}
}
return 0;
}
# include <stdio.h>
# include <math.h>
main ()//二次函数的开口,交点,最值,对称轴
{
int a =- 3; //一元二次方程的系数a
int b = 5;//一元二次方程的系数b
int c = 6;//一元二次方程的系数c
float e = (-b) / (2*a);//对称轴
float d = (4*a*c - b*b) / (4*c) ;//最大值
float delta = b*b - 4*a*c;//判别式
float x1;//其中一个解
float x2;//其中一个解
if (a > 0)//开口向上
{
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数抛物线开口朝上\n该二次函数与x轴有两个解有两个交点,第一个交点是%f,0.第二个交点是 %f,0\n函数最小值是%f\n该二次函数的对称轴是%f",x1,x2,d,e);
}
else if (delta==0)//判别式等于0,有两个相同解
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该该二次函数开口向上\n二次函数与x轴有一个交点,是 %f,0\n,函数最小值是0\n该二次函数的对称轴是%f",x1,e);
}
else if (delta<0)
{
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数开口向上\n该二次函数与x轴无交点,函数最小值是%f\n该二次函数的对称轴是%f",d,e);//判别式小于0,无解
}
}
else if (a<0)//开口向下
{
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数抛物线开口朝下\n该二次函数与x轴有两个解有两个交点,第一个是%f, 0第二个是%f,0\n,函数最大值是%f\n该二次函数的对称轴是%f",x1,x2,d,e);
}
else if (delta==0)//判别式等于0,有两个相同解
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该二次函数开口朝下,该二次函数与x轴有一个交点,是 %f,0\n,函数最大值是0\n该二次函数的对称轴是%f",x1,e);
}
else if (delta<0)
{
d = (4*a*c - b*b ) / (4*a);
printf("该二次函数开口朝下\n该二次函数与x轴无交点,函数最大值是%f\n该二次函数的对称轴是%f",d,e);//判别式小于0,无解
}
}
return 0;
}