求方程a*x*x+b*x+c的根,用3个函数分别求当判别式大于0,小于0,等于0的根并输入结果.从主函数输入a,b,c
求方程a*x*x+b*x+c的根,用3个函数分别求当判别式大于0,小于0,等于0的根并输入结果.从主函数输入a,b,c
各位看看我的程序,结果只到了输出判别式disc的那步,然后不执行子函数,哪里错了...
#include
#include
int dengyu(int a,int b,int c)
{
double x1,x2,p,q,disc;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%f\tx2=%f\n",x1,x2);
getchar();
return 0;
}
int dayu(int a,int b,int c)
{
double x1,x2,p,q,disc;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%f\tx2=%f\n",x1,x2);
getchar();
return 0;
}
int xiaoyu(int a,int b,int c)
{
double p,q,disc;
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);
getchar();
return 0;
}
void main()
{
int a,b,c;
int disc;
printf("请按顺序输入二元一次方程的二次项系数a(不为0),一次项系数b,常数项c\n");
scanf("%d%d%d",&a,&b,&c);
disc=b*b-4*a*c;
printf("disc=%d",disc);
if(disc=0)
dengyu(a,b,c);
if(disc>0)
dayu(a,b,c);
if(disc
if(disc=0)改为if(disc==0)
disc=0为赋值语句.
在所有的调用函数里出现了disc,但disc没有计算且没有初始化,需重新计算吧
另外建议printf("disc=%d",disc);改为printf("disc=%d\n",disc);进行换行,显示效果会好点