#include stdio.h
公司主营业务:成都做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出饶平免费做网站回馈大家。
#include math.h
void main()
{ double a,b,c,x1,x2,d,i,t;
printf("请输入 a,b,c:\n");
scanf("%lf,%lf,%lf",a,b,c);
d=b*b-4*a*c;
i=sqrt(-1);
if(a==0)
printf("不是二次函数\n");
else if(d0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else if(d0)
{
x1=(-b+i*sqrt(d))/(2*a);//这里负数不能开根号
x2=(-b-i*sqrt(d))/(2*a);//这里负数不能开根号
printf("x1=%lf,x2=%lf\n",x1,x2);
}/*当d0时求复数根:可将实部和虚部分开处理,注意:i*sqrt(d)不能这样表达,i只代表虚部,不是-1,另外,开根号的数是-d,而不是d.
*/
else
{
t=-b/(2*a);
printf("x1=x2=%lf\n",t);
}
}
#include stdio.h
#include math.h
void main()
{float a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",a,b,c);/*输入abc值*/
disc=b*b-4*a*c;/*判断△是不是大小*/
if(fabs(disc)=0.0001) printf("有两个相等的跟:%8.4f\n",-b/(2*a));
else if(disc0.0001)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("有两个不相等的跟:%8.4f和%8.4f\n",x1,x2);
}
else
{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);
}
sqrt()是数学函数,你要导入这个函数库#include math.h,它是求跟号的。
printf("x=%d/n",m);你定义的m是整型变量,而abc你定义的是浮点型,程序运行的时候无法将浮点型转换成整型。
#includestdio.h
#includemath.h
void zero(float a,float b);
void left();
void right(float a,float b,float c);
void main()
{
float a,b,c,d;
printf("请输入a,b,c的值:\n");
scanf("%f %f %f",a,b,c);
d=b*b-4*a*c;
if(d==0)zero(a,b);
if(d0)left();
if(d0)right(a,b,c);
}
void zero(float a,float b)
{
printf("%f",-b/2*a);
}
void left()
{
printf("no roots!\n");
}
void right(float a,float b,float c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("%f %f \n",x1,x2);
}
#include stdio.h
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("请输入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("无解,请重新输入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("输入正确,正在计算....\n");
d = sqrt(e);
x1 = (-b + d)/(2 * a);
x2 = (-b - d)/(2 * a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
return 0;
}
你的输入语句为:
scanf("%f,%f,%f",a,b,c);
运行后输入的数据是否使用了两个逗号分割,否则a,b,c的值并不是你输入的内容,你可以输出来看一看。
建议输入语句不要逗号,例如这样:
scanf("%f%f%f",a,b,c);
这样输入的数据使用逗号或者回车分开都可以。
做关于二次函数的问题,首先考虑a的取值a0,开口向上;a0,开口向下。
顶点(
-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
解出就行了