重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
做关于二次函数的问题,首先考虑a的取值a0,开口向上;a0,开口向下。
创新互联公司主营舒兰网站建设的网络公司,主营网站建设方案,重庆APP开发公司,舒兰h5微信平台小程序开发搭建,舒兰网站营销推广欢迎舒兰等地区企业咨询
顶点(
-b/2a,(4ac-b^2)/4a
)
该题在x=-1时,y有最小值-4,就说明了该二次函数的顶点(并且a是大于0的)
即-b/2a=-1,(4ac-b^2)/4a
=-4
——
a
x1^2+x2^2=10(两根之和为-b/a,两根之积为c/a)
x1^2+x2^2=(x1+x2)^2-2x1x2=(b/a)^2-2c/a=10——
b
根据
a
和
b
解出就行了
一:scanf("%3f%3f%3f",a,b,c); 这里要求输入数据必须为三位数,最好改成:
scanf("%f%f%f",a,b,c); 去掉限定
二:
void tonggen(float a,float b,float k)
//float a,b,k; 如果这样定义,则上一行的函数定义应该写成:void tonggen( a, b, k) 二者不能同存
{
float x;
x=(-b)/(2*a); //这里应该为2*a
printf("二次函数为同根为x=%3f",x);
}
我看书上是改错题,你没有发完整的原题(错误的代码),无法改错,只能按照编程题做了:
main(){
int a=1,b=5,c=-6;
float x1,x2,delta;
delta=b*b-4*a*c;
if(delta0)printf("没有实数解。\n");
elseif(delta==0){
x1=-b*1.0/(2*a);
printf("只有一个解:x=%f。\n",x1);
}
else{
delta=sqrt(dalta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
printf("有两个解:x1=%f,x2=%f。\n",x1,x2);
}
}
如果还有问题,请留言。
#include stdio.h
#include math.h
void main()
{
double val=0,result1=0,result2=0;
val=b*b-4*a*c;
if(abs(val)EPSILON)
return;
else
{
result1=(sqrt(val)-b)/(2*a);
result2=-(sqrt(val)+b)/(2*a);
printf("\n\r result1=%ld,result2=%ld",result1,result2);
}
}
没注意题目,把main里面写成个函数就行了,在main里面调用。