C++;错误';其他';没有以前的';如果'; 我是C++新手,一直在做一个赋值< /p>

C++;错误';其他';没有以前的';如果'; 我是C++新手,一直在做一个赋值< /p>,c++,if-statement,output,C++,If Statement,Output,好的,这样就运行了,但它不做计算 当窗口打开时,我输入B或C 然后是单词的长度 它只是说pay=0 以下是新代码: #include <iostream> using namespace std; char authorLevel; int numberOfWords, payTotal; int fixedPayAmount; int main() { cout << "Enter Author Level(A,B,or C):"; char au

好的,这样就运行了,但它不做计算 当窗口打开时,我输入B或C 然后是单词的长度 它只是说pay=0

以下是新代码:

#include <iostream>




using namespace std;


char authorLevel;
int numberOfWords, payTotal;
int fixedPayAmount;



int main()
{


cout << "Enter Author Level(A,B,or C):";
char authorLevel;
cin >>authorLevel;

cout << "Enter Length(in words):";
int numberOfWords;
cin >>numberOfWords;

cout << "Pay is: $" << payTotal << endl; 
int payTotal;


cout << "Fixed Pay is:$" << fixedPayAmount << endl;
int fixedPayAmount;

//Calculations for C Level Author


if (authorLevel == 'C')
{

         //If the Number of words is <7500 multiply by 0.08     
              if (numberOfWords <=7500)
                  {
                    payTotal= numberOfWords * 0.08;                     
                  }

        //If the numberOfWords is >7500 to <=8000 pay is fixed 600
                if (numberOfWords >7500 || numberOfWords <= 8000)
                    {
                        fixedPayAmount= 600;

                    }
        //If the numberOfWords is >8000 to <=17500 multiply by 0.075
              if (numberOfWords >8000 || numberOfWords <=17500)     
                    {
                    payTotal= numberOfWords * 0.075;
                    }
        //If the numberOfWords is >17500 to <= 19000 fixed $1313
             if (numberOfWords >17500 || numberOfWords <= 19000)
                    {
                        fixedPayAmount=1313;
                    }
        //If the numberOfWords is >=19000 multiply 0.07
            if (numberOfWords >=19000)
            {
                payTotal= numberOfWords * 0.07;
            }
}

else if (authorLevel== 'A')
    {


         //If the Number of words is <7500 multiply by 0.14     
              if (numberOfWords <=7500)
                  {
                    payTotal= numberOfWords * 0.14;
                    }

        //If the numberOfWords is >7500 to <=8000 pay is fixed $1050
                if (numberOfWords >7500 || numberOfWords <= 8000)
                    {
                        fixedPayAmount= 1050;

                    }
        //If the numberOfWords is >8000 to <=17500 multiply by 0.13125
              if (numberOfWords >8000 || numberOfWords <=17500)     
                    {                                               
                    payTotal= numberOfWords * 0.13125;
                    }
        //If the numberOfWords is >17500 to <= 19000 fixed $2297.75
             if (numberOfWords >17500 || numberOfWords <= 19000)
                    {
                        fixedPayAmount=2297.75;
                    }
        //If the numberOfWords is >=19000 multiply 0.1225
            if (numberOfWords >=19000)
            {
                payTotal= numberOfWords * 0.1225;
            }
    }



    else if (authorLevel== 'B')
    {

         //If the Number of words is <7500 multiply by 0.1  
              if (numberOfWords <=7500)
                  {
                        payTotal= numberOfWords * 0.1;
                    }

        //If the numberOfWords is >7500 to <=8000 pay is fixed $750
                if (numberOfWords >7500 || numberOfWords <= 8000)
                    {
                        fixedPayAmount= 750;

                    }
        //If the numberOfWords is >8000 to <=17500 multiply by 0.09375
              if (numberOfWords >8000 || numberOfWords <=17500)     
                    {
                    payTotal= numberOfWords * 0.09375;
                    }
        //If the numberOfWords is >17500 to <= 19000 fixed $1641.25
             if (numberOfWords >17500 || numberOfWords <= 19000)
                    {
                        fixedPayAmount=1641.25;
                    }
        //If the numberOfWords is >=19000 multiply 0.0875
            if (numberOfWords >=19000)
            {
                payTotal= numberOfWords * 0.0875;
            }
    }


            return 0;
}
#包括
使用名称空间std;
字符作者级;
int numberOfWords,paytoal;
固定支付金额;
int main()
{
cout>authorLevel;
字数;

cout在第一个
if
后面有一个分号(在行尾)。删除该分号即可

if (authorLevel =   'C');
应该是

if (authorLevel ==   'C')

正如其他人所注意到的,还有其他分号和错误。请小心!

如果
,则在第一个
末尾有一个分号:

if (authorLevel =   'C');
您已经生成了一个
if
语句,除了一个空语句外,该语句没有附加任何代码。然后,您将得到一个不相关的代码块,该代码块后面有一个
else


您需要删除分号。

您必须删除结尾处的“;”(并将“=”替换为“=”)

截至年底

if (numberOfWords <=7500);

if(numberOfWords是“if”语句末尾的分号,例如

if (authorLevel =   'C');
这相当于:

if (authorLevel =   'C')
{
  ;
}
换句话说,这意味着“if”语句后面的块不是“if”语句的一部分,并且不是有条件执行的

您在代码中重复执行该操作,但正是我作为示例使用的语句导致了您告诉我们的编译器错误


编辑:另外,“=”是赋值运算符。您几乎肯定想使用“==”,这是相等比较运算符。

使用适当的缩进。删除
后面的分号
如果
语句请仔细检查您的条件块,这只是括号的问题:-)更好的方法是,如果你可以,使用
开关
。缩进注释不仅仅是对你的问题吹毛求疵。如果你学会使用编辑器的自动缩进功能,和/或更加注意格式,它将大大有助于发现像你遇到的问题一样的问题。加上其他一些实际应该是这样的地方
if(authorLevel='C')
我修复了;和==,谢谢大家。现在它说第70行的“{”标记前面应该有“;”,其他行(authorLevel==A)和第138行的输入末尾应该有错误}返回0之后;}我知道这可能是我的{是的,但我在任何地方都找不到它,我一遍又一遍地检查我的代码。我看到有人说开关会更好?我如何将它转换为开关?你解决了所有的==和;问题吗?如果你能发布新代码,那会有帮助。通常编写和测试比这更小的代码块,然后扩展它是一个好主意。如果你在这里这样做,将更容易跟踪错误,并知道您在正确的路径上。您正在打印计算结果,然后才实际执行计算。我修复了;和==,谢谢大家。现在它说错误预期“;”在“{”标记之前,第70行else(authorLevel==A)和错误预期}在返回0后输入第138行的末尾;}我知道我的{可能有问题,但我到处都找不到,我一遍又一遍地检查我的代码。我看到有人说开关会更好?我如何将其转换为开关?您也有一个
第65行,您是否删除了它?
如果(numberOfWords>7500 | | | numberOfWords是的,我都拿到了,我留下了那些在付款后的东西Total=numberOfWords*0.13125;固定的付款金额=2297.75;当我把它们拿出来的时候,它说的是错误,让我把它们放回去。它说的是预期错误;在{else(authorLevel=='A'){你忘了else-if(authorLevel=='A'){'中的'if'了吗?是的,这就是问题所在,我错过了2个;我让程序运行了,但它没有给我答案
if (authorLevel =   'C')
{
  ;
}