如果否则> =(2次)编译好但不起作用

Sin*_*ner 2 c++ if-statement

我正在制作一个成绩日志应用程序,我在这里有这段代码,因为我不打算工作.(它编译很好,没有错误,但不起作用)(请记住我是C++的初学者,谢谢你的时间和知识,以帮助我学习).(测试核心是从一系列问题中得出的,如果正确则值为+1,如果错误则为-1.

我认为错误是在=>它与另一个相冲突但我不知道如何为ex赋值.如果得分<20 cout =失败,如果它的<40失败好但是看到20是<40所以一个覆盖另一个如果它从20-40 cout =失败好并且如果它从0 - 20 cout =失败我怎么能放.我希望你明白我的意思.

   int testscore;
    string studentmark;

            if ( testscore  == 10 )

            {
                studentmark == ( "failed" );
            }
            else if ( testscore >= 11 && testscore <= 20 )
            {
                studentmark == ( "closebutfailed" );
            }
            else if ( testscore >= 21 && testscore <= 30)
            {
                studentmark == ( "passed" );
                }
            else if ( testscore >= 31 && testscore <= 40 )
            {
                studentmark == ("excelent");
            }
            else if ( testscore >=49 )
            {
                studentmark == ("hasteachersbook");
            }
cout << "Studentmark is:" << studentmark << endl;
Run Code Online (Sandbox Code Playgroud)

Eli*_*ght 14

首先,您的问题是您应该使用单个等号进行分配,例如

studentmark   = "failed";
///         ^^^^ Note single =
Run Code Online (Sandbox Code Playgroud)

其次,你最好把这些if语句写成

if (testscore <= 10) { ... }
else if (testscore <= 20) { ... }
else if (testscore <= 30) { ... }
...
Run Code Online (Sandbox Code Playgroud)

因为这更容易阅读,并且else声明的存在意味着您不必测试testscore大于您已经涵盖的数量.


Joe*_*oeG 5

==对平等的考验,=分配.

当你写作时,studentmark == ( "failed" );你正在测试字符串studentmark是否相等"failed",然后丢弃答案.