这个程序哪里错了呀???

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:08:33
程序是这样的:

#include <stdio.h>
#include <math.h>
void main ()
{
double a,b,c,x1,x2,m,n,mq;
printf ("请输入参数:");
scanf ("%d,%d,%d",&a,&b,&c);
m=b*b-4*a*c;
mq=sqrt(m);
n=-b;

if (m>=0)
{
x1=(n+mq)/(2*a);
x2=(n-mq)/(2*a);
printf ("方程解为:%d,%d,\n",x1,x2);
}
else
printf("方程无解\n");
}

为什么不管输入什么数,都显示方程无解???? 我是个编程新手

#include <stdio.h>
#include <math.h>
/*注意%f %d的区别*/
void main ()
{
float a,b,c,x1,x2,m,n,mq;
printf ("请输入参数(如:2.0,5.0,-10.0):");
scanf ("%f,%f,%f",&a,&b,&c);
m=b*b-4*a*c;
if ( m < 0 )
{
printf("方程无解\n");
return ;
}
mq=sqrt(m);
n=-b;

x1=(n+mq)/(2*a);
x2=(n-mq)/(2*a);
printf ("方程解为:%f,%f,\n",x1,x2);
}

错了,你该把判断放在前面,不然mq=sqrt(m);运行出错。