你们说书上这题是不是有错误?

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:18:36
程序如下,能够正确运行
这是我从课本上完全复制过来,书上简单说了一下b*b-4*a*c>=0,但是例子中却完全没有这方面的,感觉就是忽悠了事,
如果<0,此例题是完全是傻子,你们觉得我的想法是对的还是错的?
#include<iostream>
#include<cmath>
using namespace std;
int main()
{float a,b,c,x1,x2;
cin>>a>>b>>c;

x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);
cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;
return 0;}

确实是这样的,这个例题考虑的显然是不全面的,记得我书上的例题是有程序段专门处理这样的情况的.
其实另一方面说,也不必过于钻牛角尖,如果一个很简单的程序考虑的太多,包括数据过滤,数学处理的部分太多,反而弱化了其核心的部分,典型的意义不能体现出来,就不能作为例题了.
像这样的情况只要自己清楚就好了,不必深究

错的

书本的例子不够严谨,应该加上判断b*b-4*a*c是否大等于0再输出结果。