【深基6.习7】语句解析 · 教师题解

【深基6.习7】语句解析

解题思路

三个变量初始为 0。每条赋值语句格式固定为 5 字符,取第一个字符确定左值,第 4 个字符确定右值是数字还是变量,按顺序赋值。

正确性说明

顺序解释语句使数组始终对应执行到当前位置的变量值;右侧取当前值,符合赋值语义。

易错点

变量初始值为 0;a:=b 是复制当前值,不建立永久关联。

复杂度

语句总长 L,时间 O(L),空间 O(L)。

参考代码(C++11)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    string s, t;
    while (cin >> t)
        s += t;
    int v[3] = {};
    for (size_t i = 0; i + 4 < s.size(); i += 5) {
        char c = s[i + 3];
        int val = (c >= '0' && c <= '9') ? c - '0' : v[c - 'a'];
        v[s[i] - 'a'] = val;
    }
    cout << v[0] << " " << v[1] << " " << v[2] << "\n";
    return 0;
}
返回题目