语句解析
题目背景
木有背景……
题目描述
一串长度不超过 255 255 255 的 PASCAL 语言代码,只有 a , b , c a,b,c a,b,c 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,每条赋值语句的格式是 [变量]:=[变量或一位整数];
。未赋值的变量值为 0 0 0 输出 a , b , c a,b,c a,b,c 的值。
输入格式
一串符合语法的 PASCAL 语言,只有 a , b , c a,b,c a,b,c 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为 0 0 0。
输出格式
输出 a , b , c a,b,c a,b,c 最终的值。
样例 #1
样例输入 #1
a:=3;b:=4;c:=5;
样例输出 #1
3 4 5
提示
输入的 PASCAL 语言长度不超过 255 255 255。
题解
#include<iostream>
using namespace std;
int main()
{string s;cin >> s;int a=0,b=0,c=0;int index=0;while(index!=s.length()-1){if(s.find(":=",index)!=s.npos){index = s.find(":=",index);int num;if(isalnum(s[index+2]))num=(s[index+2]-'0');if(isalpha(s[index+2])){switch (s[index+2]){case 'a':num=a;break;case 'b':num=b;break;case 'c':num=c;break;default:break;}}switch (s[index-1]){case 'a':a=num;break;case 'b':b=num;break;case 'c':c=num;break;default:break;}index +=2;}else{break;}}cout << a << " " << b << " " << c;return 0;
}