请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解.# include# includeint main(){ void root2(double a,double b,double disc); //定义方程有两个根时的函数 void root1(double a,double b)

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/17 04:53:04
请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解.# include# includeint main(){ void root2(double a,double b,double disc);                 //定义方程有两个根时的函数 void root1(double a,double b)
xVmoV+v J_7M6Ԩj&Q2eR4it(: IO ;P c4F0\_?.S0s|w UEP,CaF Fe(} Q.ٰ#F"Y1?mf|DQ"5cf1 Kd4J.7? $#a w;?GL9)em۲cG"ZJ/*p_\0_xԌ|JJZ$˜HϜKmf)̒/>8mb!b%7AlBXT"B_^mXE+Ls$D |sQ}A%){0Qbr-ˢd,孲$bjkIZeMM؟wŅ;2DZyKqa,s( ʊ$ˊC8V]UKb*2!(LZBܲ*2')Y61} 7}.REVDIڲƋ"Gzi)]Pu9q @jqĉG;0xS3w@,,dR@1v=k ؃~31.  ,b{>n⭺wv̀F` H F`~T@ ꟪.n\"jn.g|MozxduJJ1H

请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解.# include# includeint main(){ void root2(double a,double b,double disc); //定义方程有两个根时的函数 void root1(double a,double b)
请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解.
# include
# include
int main()
{
void root2(double a,double b,double disc); //定义方程有两个根时的函数
void root1(double a,double b); //定义方程只有一个根时的函数
void root0(); //定义方程没有实数解是的函数
double a,b,c,disc;
printf("请输入a,b,c的值:");
scanf("%d%d%d",&a,&b,&c);
if(a==0) //一元二次方程二次项系数不为0
{
printf("data error\n");
}
else
{
disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(disc=0)
root1(a,b);
else
root0();
}
return 0;
}
void root2(double a,double b,double disc)
{
double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%lf\nx2=%f\n",x1,x2);
}
void root1(double a,double b)
{
double x;
x=(-b)/(2*a);
printf("x1=x2=%lf\n",x);
}
void root0()
{
printf("方程没有实数解\n");
}
为什么不管输入什么数,都显示

请大家看一下下面的C语言程序哪里出错了,题目是求一元二次方程的解.# include# includeint main(){ void root2(double a,double b,double disc); //定义方程有两个根时的函数 void root1(double a,double b)
您的程序一共有两个地方有问题,
第一是读取输入的时候,a,b,c定义成double,所以读入的时候不能用%d,而应该:
scanf("%lf%lf%lf",&a,&b,&c);
另外在判断的时候,
if(disc=0)是不对的,
应该是 if(disc==0)
都改好应该没事了 :)
祝顺利.