You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编译错误‘lvalue required as left operand of assignment 2’修复求助

编译错误修复方案

错误原因分析

编译错误lvalue required as left operand of assignment的根源是这两行代码:

if(m1+m2>59) x+1 && y=y-60;
if(s1+s2>59) y+1 && z=z-60;
  • x+1是临时表达式结果,不属于可被赋值的左值(lvalue),不能放在赋值操作的左侧。
  • &&是逻辑与运算符,用于条件判断,不是用来串联执行多条赋值语句的语法。你想同时执行x+1(实际应为x +=1)和y=y-60,但用错了语法。

修复后的代码

#include <iostream>
using namespace std;
int main()
{
    int g1, m1, s1, g2, m2, s2, x, y, z;
    cin >> g1 >> m1 >> s1 >> g2 >> m2 >> s2;
    x = g1 + g2;
    y = m1 + m2;
    z = s1 + s2;
    
    // 处理分钟进位到小时
    if(y > 59) {
        x += 1;
        y -= 60;
    }
    // 处理秒进位到分钟,同时检查分钟是否需要再次进位
    if(z > 59) {
        y += 1;
        z -= 60;
        if(y > 59) {
            x += 1;
            y -= 60;
        }
    }
    
    cout << x << " " << y << " " << z << endl;
}

额外优化说明

  • 直接用y>59判断分钟是否进位,比重复计算m1+m2更高效。
  • 补充了秒进位后分钟可能超过59的二次进位处理,避免逻辑漏洞。
  • 输出时添加空格分隔,结果可读性更强。

内容的提问来源于stack exchange,提问作者zxcmaxik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:25:15