"错误:'=':左操作数必须是l值"?(在三元组中使用作业时?:)

Sve*_*a26 1 c c++

我必须有语法问题,但我无法理解这意味着什么 - 我用Google搜索,但我不明白这个问题的原因.请告诉我函数语法有什么问题

这是错误的行:

else sequence= (Bnum < Anum) ? sequence=Bnum : sequence=Anum;
Run Code Online (Sandbox Code Playgroud)

这是功能

int reduction(int Knum)
{
    int sequence=8, Anum=0, Bnum=0;

    printf("enter a sequence,to stop print (-1)\n");
    while(sequence!=-1)
    {
        Anum = sequence;
        scanf("%d",&sequence);
        Bnum = sequence;
        if (Anum+Bnum<8)
            return 1;
        else
            sequence= (Bnum < Anum) ? sequence=Bnum : sequence=Anum;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Naw*_*waz 7

下列

sequence= (Bnum < Anum) ? sequence=Bnum : sequence=Anum ;
Run Code Online (Sandbox Code Playgroud)

应该写成:

sequence= (Bnum < Anum) ? Bnum : Anum ;
Run Code Online (Sandbox Code Playgroud)

观察C和C++之间的差异

我确定你将代码编译为C程序而不是C++程序,因为在C++中你所编写的内容不会导致编译错误,尽管它在C中会出错.这是C和C++不同的一个例子!

至于错误的解释,请在这里阅读我的帖子:


小智 5

else sequence = (Bnum < Anum) ? Bnum : Anum;
Run Code Online (Sandbox Code Playgroud)

您不需要在?:运算符中进行额外的赋值.