一个c语言问题~~~~~~
这是谭浩强主编的《c语言程序设计》第四版里的第四章第一个范例是求一个二元方程式的解我是一字不变的把源程序写下来调试未报错但运行时得到的结果和预期得不一样程序如下:#inc...
这是 谭浩强主编的《c语言程序设计》第四版里的第四章第一个范例
是求一个二元方程式的解 我是一字不变的把源程序写下来 调试未报错
但运行时得到的结果和预期得不一样 程序如下:
#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
在输入 6 3 1 分别给a b c 赋值的时候 会输出 this equation hasn't real roots
可是再输入 2 4 1时却还是显示 this equation hasn't real roots
就好像是else 子语句没执行一样 不知道问什么或出现这种情况 求高手解释 谢谢!!! 展开
是求一个二元方程式的解 我是一字不变的把源程序写下来 调试未报错
但运行时得到的结果和预期得不一样 程序如下:
#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
在输入 6 3 1 分别给a b c 赋值的时候 会输出 this equation hasn't real roots
可是再输入 2 4 1时却还是显示 this equation hasn't real roots
就好像是else 子语句没执行一样 不知道问什么或出现这种情况 求高手解释 谢谢!!! 展开
4个回答
展开全部
#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("%lf %lf %lf",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
你把scanf打错了应该是scanf("%lf %lf %lf",&a,&b,&c);
而不是scanf("lf% lf% lf%",&a,&b,&c);
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("%lf %lf %lf",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
你把scanf打错了应该是scanf("%lf %lf %lf",&a,&b,&c);
而不是scanf("lf% lf% lf%",&a,&b,&c);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c); ///////////// %写前面......
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c); ///////////// %写前面......
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是哪个环境??????有些环境的严格性很强!
%lf长浮点型数据输出格式.
数据类型为 long double
long double a,b,c,x1,x2,p,q,disc;
scanf("%lf %lf %lf",&a,&b,&c);
%lf长浮点型数据输出格式.
数据类型为 long double
long double a,b,c,x1,x2,p,q,disc;
scanf("%lf %lf %lf",&a,&b,&c);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小错,只是输入格式弄错而已,%lf 而不是lf%
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询