c语言问题,本人新手,编了一个解方程的小程序,不知哪里出错,望指教。

# include <stdio.h>
# include <math.h>

int main(void)
{
double a;
double b;
double c;
double delta;
double x1;
double x2;
delta = b*b - 4ac;

printf("请依次输入a,b,c的值(中间用空格间隔):");
scanf("%lf %lf %lf",&a,&b,&c);

if (delta > 0)
{
x1 = (-b + sqrt(delta))/2*a;
x2 = (-b - sqrt(delta))/2*a;
printf("有两个解:x1 = %lf,x2 = %lf",x1,x2);
}
else if (delta == 0)
{
x2 = x1 = (-b + sqrt(delta))/2*a;
printf("有一个解:x1 = x2 =%lf",x1);
}
else if (delta < 0)
{
printf("无解");
}

return 0;

}

# include <stdio.h>
# include <math.h>

void main()
{
double a;
double b;
double c;
double delta;
double x1;
double x2;
delta=b*b-4*a*c;

printf("请依次输入a,b,c的值(中间用空格间隔):");
scanf("%lf %lf %lf",&a,&b,&c);

if (delta>0)
{
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
printf("有两个解:x1=%lf,x2=%lf",x1,x2);
}
else if (delta==0)
{
x2=x1=(-b+sqrt(delta))/2*a;
printf("有一个解:x1=x2=%lf",x1);
}
else if (delta<0)
{
printf("无解");
}

}

首先 你的输入状态好像有些不是英文状态 我已帮你改过
还有就是4ac 不能这样写
c语言环境没那么聪明追问

谢谢了。但是请你试一试呢,为什么我的程序没有报错,但是输进去的无论是那个值,都显示无解。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-26
你没定义那些变量就使用了,肯定会报错,再一个,就是 delta = b*b - 4ac;中的4ac应该改为4*a*c
第2个回答  2012-02-25
如果你是拷贝的,那么第一个算是4ac不对吧~是不是着急了没打“*”~
scanf("%lf %lf %lf",&a,&b,&c); 这个用%f就可以了吧~追问

还是有问题啊

追答

我所学的开头这样写的# include
# include

void int……
我还想确定下,你的数据是整型还是实型,感觉是int和double冲突了~我也是菜鸟一枚,希望能帮到你~

第3个回答  2012-02-26
4abc 没有定义,如果是4*a*b*c 话,要把乘号(*)加进去
相似回答