我最近编写了一个简单的C ++程序,它解决了二次方程式。
我确信你熟悉二次方程:ax ^ 2 + bx + c
我试图用Delta方法解决它。
以下是该计划:
#include <iostream>
#include <math.h>
using namespace std;
inline void Seprator()
{
cout << endl << "---------------------------------------";
}
inline void endline()
{
cout << endl;
}
double a,b,c;
int main()
{
cout << "Welcome to AMR Quadratic Equation Solver Program.";
endline();
cout << "All development process by Amirreza Hashemieh - amrapps@outlook.com";
endline();
cout << "Standard form of Quadratic Equation : ax^2 + bx + c";
endline();
cout << "To exit the program,simply close the window.";
Seprator();
Seprator();
Seprator();
endline();
while(true)
{
cout << "Enter a > press enter > Enter b > press enter > Enter c "
"> press enter :";
endline();
cin >> a >> b >> c;
double delta = (b*b) - (4*a*c);
if (delta < 0)
cout << "No Answer!!! ";
else if(delta == 0)
cout << (-b) / (2*a);
else
cout << "Answer 1 : " << cout << (-b+sqrt(delta)) / (2*a);
endline();
cout << " Answer 2 : " << cout << (-b-sqrt(delta)) / (2*a);
Seprator();
endline();
}
}
它工作正常,但在答案之前显示一些混乱!
例如将a设置为4,b设置为12,c设置为5.它应该显示-0.5和-2.5的答案。这样做但显示实际答案之前的一些混乱数据。(我不知道是什么他们是?)
答案 0 :(得分:1)
这里有一个额外的cout
:
cout << "Answer 1 : " << cout << (-b+sqrt(delta)) / (2*a);
这是在您的流中放置指针值,其打印为十六进制。摆脱它:
cout << "Answer 1 : " << (-b+sqrt(delta)) / (2*a);
答案2相同。
答案 1 :(得分:0)
这是错误的:
cout << "Answer 1 : " << cout << (-b+sqrt(delta)) / (2*a);
省略第二个<< cout
。
您在{}
分支代码周围也缺少else
。