- 论坛徽章:
- 0
|
下面这个程序是使用函数调用计算一元二次方程根的程序,发现程序出现的问题是在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");
} |
|