当前位置: 代码迷 >> C语言 >> 求助,谢谢了
  详细解决方案

求助,谢谢了

热度:121   发布时间:2007-03-24 16:56:40.0
求助,谢谢了
为什么输入4,4,1时结果为X1=X2=-8.00
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,x1,x2,p,q,g;
scanf("%f,%f,%f",&a,&b,&c);
p=(-b)/2*a;
g=b*b-4*a*c;
q=sqrt(g)/2*a;
if(g>0)
{
x1=p+q;
x2=p-q;
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
if(g==0)
{
x1=p;
x2=p;
printf("x1=x2=%5.2f\n",x2);
}
if(g<0)
{
printf("no\n");
}
}
----------------解决方案--------------------------------------------------------
请问程序是做什么的呢?
----------------解决方案--------------------------------------------------------
求方程的根
----------------解决方案--------------------------------------------------------

你的数据类型定义的有些问题。
我给你改了一下:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,x1,x2,p,q,g;
scanf("%lf%lf%lf",&a,&b,&c);
p=(-b)/2*a;
g=b*b-4*a*c;
q=sqrt(g)/2*a;
if(g>0)
{
x1=p+q;
x2=p-q;
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
if(g==0)
{
x1=p;
x2=p;
printf("x1=x2=%5.2f\n",x2);
}
if(g<0)
printf("no\n");
}
不过,我还有一个问题,你那个虚根不会求吗?


----------------解决方案--------------------------------------------------------
试试看,谢了先
----------------解决方案--------------------------------------------------------
  相关解决方案