为什么std :: cout没有正确显示?

时间:2014-12-08 21:14:31

标签: c++ cout

我最近编写了一个简单的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的答案。这样做但显示实际答案之前的一些混乱数据。(我不知道是什么他们是?)

2 个答案:

答案 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