Chinaunix
标题:
我这个程序出现的问题,向大家请教
[打印本页]
作者:
cos8888
时间:
2008-07-24 16:15
标题:
我这个程序出现的问题,向大家请教
下面这个程序是使用函数调用计算一元二次方程根的程序,发现程序出现的问题是在main中用scanf对全局变量a,b,c传值传不进去,scanf下面加上输出a,b,c的语句,发现a,b,c全为0。我不知道这是为什么,该用什么样的方法解决呢?
#include <stdio.h>
#include <math.h>
double x1,x2,a,b,c,disk;
int main()
{
void deng(double);
void dayu(double);
void xiaoyu(double);
printf("请输入一元二次方程的三个系数:");
scanf("%f %f %f",&a,&b,&c);
disk=b*b-4*a*c;
if (disk==0)
{
deng(disk);
printf("x1=x2=%lf\n",x1);
}
else if (disk>0)
{
dayu(disk);
printf("x1=%lf\n",x1);
printf("x2=%lf\n",x2);
}
else
xiaoyu(disk);
return 0;
}
void deng(double t)
{
x1=x2=-b/(2*a);
}
void dayu(double t)
{
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
}
void xiaoyu(double t)
{
printf("没有实数解:\n");
}
作者:
5毛党党员
时间:
2008-07-24 16:31
double的话,应该用scanf("%lf")吧
float用%f
作者:
cos8888
时间:
2008-07-24 16:37
确实是这样,谢谢
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2