Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++程序设计问题的评价表达式_C++ - Fatal编程技术网

C++程序设计问题的评价表达式

C++程序设计问题的评价表达式,c++,C++,我正在尝试编写一个程序,反复提示用户输入3个系数值a、b和c,然后使用以下表达式进行计算,并显示x的两个可能值。 x=2c±√2a-35/b-5c 如果用户输入-999作为输入,则程序应终止。此外,如果未为a输入-999,则必须在开始时清除屏幕,并在单独的行上提示用户输入b和c 此外,如果输入无效(如除零或负sqrt),则必须显示错误消息。这是我到目前为止所做的,我已经对它进行了数百万次的修改,以使它能够编译并不断出错 #include <iostream.h>

我正在尝试编写一个程序,反复提示用户输入3个系数值a、b和c,然后使用以下表达式进行计算,并显示x的两个可能值。 x=2c±√2a-35/b-5c

如果用户输入-999作为输入,则程序应终止。此外,如果未为a输入-999,则必须在开始时清除屏幕,并在单独的行上提示用户输入b和c

此外,如果输入无效(如除零或负sqrt),则必须显示错误消息。这是我到目前为止所做的,我已经对它进行了数百万次的修改,以使它能够编译并不断出错

#include <iostream.h>                                                       
#include <cmath>
#include <conio.h>

using namespace std;

int main (void)
{
clrscr();

float  a, b, c, x1, x2, discriminant, divisor;

//Getting values for a,b,c
cout<<"Enter the value for A (-999 to quit):  "<<endl;
cin >> a;

if(a ==-999)return 0;

cout<<"Enter the value for B: "<<endl;
cin>>b;

cout<<"Enter the value for C: "<<endl;
cin>>c;

// Evaluating
discriminant=(2*a-35);
divisor=(b-5*c)
if (discriminant >0);
{
    x1=(2*c+sqrt(discriminant))/(divisor);
    x2=(2*c-sqrt(discriminant))/(divisor);
}
else (discriminant ==0)
{
    x1=x2=(2*c)/(divisor);
}
else if (sqrt(discriminant <= -1);
cout<<"Invalid Value"<<endl;
{
else if (divisor ==0)
cout<<"Invalid Value"<<endl;
}
else
{
cout<<"x1= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
cout<<"x2= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
}
        system ("pause");

        return 0;
}

由于多次更改,这一切都搞砸了,对此我深表歉意。这段代码是编译的,但结果似乎不正确

//#include <iostream.h>                                                       
#include <iostream> // delete .h
#include <cmath>
//#include <conio.h> // Wandbox gcc 4.8.2 doesn't seem supporting this

using namespace std;

int main (void)
{
//clrscr(); // Wandbox gcc 4.8.2 doesn't seem supporting this

float  a, b, c, x1, x2, discriminant, divisor;

//Getting values for a,b,c
cout<<"Enter the value for A (-999 to quit):  "<<endl;
cin >> a;

if(a ==-999)return 0;

cout<<"Enter the value for B: "<<endl;
cin>>b;

cout<<"Enter the value for C: "<<endl;
cin>>c;

// Evaluating
discriminant=(2*a-35);
//divisor=(b-5*c)
divisor=(b-5*c); // add semicolon here
//if (discriminant >0);
if (discriminant >0) // delete semicolon here
{
    x1=(2*c+sqrt(discriminant))/(divisor);
    x2=(2*c-sqrt(discriminant))/(divisor);
}
//else (discriminant ==0)
else if (discriminant ==0) // add if
{
    x1=x2=(2*c)/(divisor);
}
//else if (sqrt(discriminant <= -1);
else if (discriminant <= -1) // delete sqrt( and semicolon
cout<<"Invalid Value"<<endl;
//{ // delete this
else if (divisor ==0)
{ // add this
cout<<"Invalid Value"<<endl;
}
else
{
cout<<"x1= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
cout<<"x2= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
}
        //system ("pause"); // include cstdlib or delete this

        return 0;
}

所以它并没有按预期的那样工作,但是它做了什么呢?它编译失败了吗?它会崩溃吗?它会返回错误的值吗?问题是…?这条线看起来很破,只是说。。。否则,如果sqrtdiscriminant,问题是无论我如何更改它,它都不会编译。第28、33、34、40、43和51行有错误。使用borland进行编译,如果这有什么不同的话,因为我必须为结构和清晰性而努力。将代码分成小块添加。然后,实际读取错误消息。虽然它们有时很隐晦,但它们通常能说出问题所在。另外,看看我做了你建议的更改,我仍然得到错误38:代码在函数main中无效41:在函数main 43:x2和x1中错放了else分配了一个从未在函数main中使用过的值44:声明终止不正确51:声明错误终止52:意外}此代码带有一个警告。请再次检查您的代码。我得到了上述代码的工作,但我不是特别确定的程序逻辑。我不知道你打算在程序中的几点上做什么。你似乎也不确定分号在哪里需要,我最终通过修改你的建议,修改else-if语句,并添加了一段时间,让分号顺利编译。谢谢你的帮助。
int main (void)
{
    clrscr();

    float  a, b, c, x1, x2, discriminant, divisor;

    //Getting values for a,b,c
    cout<<"Enter the value for A (-999 to quit):  "<<endl;
    cin >> a;

    if(a ==-999)return 0;

    cout<<"Enter the value for B: "<<endl;
    cin>>b;

    cout<<"Enter the value for C: "<<endl;
    cin>>c;

    // Evaluating
    discriminant=(2*a-35);
    divisor=(b-5*c)
    if (divisor ==0)
    {
        cout<<"Invalid Value"<<endl;
        return 0;
    }
    if (discriminant >0);
    {
        x1=(2*c+sqrt(discriminant))/(divisor);
        x2=(2*c-sqrt(discriminant))/(divisor);
    }
    else if (discriminant ==0)
    {
        x1=x2=(2*c)/(divisor);
    }
    else
    {
        cout<<"Invalid Value"<<endl;
        return 0;
    }

    cout<<"x1= "<< x1 <<endl;
    cout<<"x2= "<< x2 <<endl;

    return 0;
}
#include <iostream>                                                       
#include <cmath>

using namespace std;

int main (void)
{
//clrscr();
char exit_char;
//Why not use double
double  a, b, c, x1, x2, discriminant, divisor;
//float  a, b, c, x1, x2, discriminant, divisor;

//Getting values for a,b,c
cout<<"Enter the value for A (-999 to quit):  "<<endl;
cin >> a;

if(a ==-999)
    return 0;

cout<<"Enter the value for B: "<<endl;
cin>>b;

cout<<"Enter the value for C: "<<endl;
cin>>c;

// Evaluating
discriminant=(2*a-35);
divisor=(b-5*c); //Do you want b-(5*c) or (b-5)*c
/*if (discriminant >0);
{
    x1=(2*c+sqrt(discriminant))/(divisor);
    x2=(2*c-sqrt(discriminant))/(divisor);
}
//This is supposed to be an else if block
//else (discriminant ==0)
else 
    if(discriminant == 0)
{
    x1=x2=(2*c)/(divisor);
}
else if (sqrt(discriminant <= -1);
cout<<"Invalid Value"<<endl;
{ */
//
if(discriminant > 0)
{
    x1=(2*c+sqrt(discriminant))/(divisor);
    x2=(2*c-sqrt(discriminant))/(divisor);
}
else
{
    if(discriminant  == 0)
    {
        x1=x2=(2*c)/(divisor);
    }
    else
    {
        if(sqrt(discriminant) <= -1);
            cout<<"Invalid Value"<<endl;
    }
}

//
if (divisor == 0)
    cout<<"Invalid Value"<<endl;

else
{

    //cout<<"x1= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
    //cout<<"x2= "<<"("<<(2*c)<<"+ i"<<sqrt(discriminant)<<")/"<<divisor<<endl;
    cout<<"x1 = "<<x1<<endl;
    cout<<"x2 = "<<x2<<endl; 
}
        //system ("pause");
    cout<<"Enter any char to quit the program"<<endl;
    cin>>exit_char;

    return 0;
}`enter code here`