【深基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;
}