题目背景
木有背景……
题目描述
一串(<255)PASCAL语言,只有a,b,c 3个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为0。输出a,b,c 最终的值。
输入输出格式
输入格式:
一串(<255)PASCAL语言,只有a,b,c 3个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,未赋值的变量值为0。
输出格式:
输出a,b,c 最终的值。
输入输出样例
输入样例#1:
a:=3;b:=4;c:=5;
输出样例#1:
3 4 5
算法:
模拟
分析:
这道题太水了,只是做来爽一下。
用字符串输入,然后记录当前状态是哪个字母,不过要注意有可能是字母赋值给字母。
上代码:
1 #include<cstdio> 2 3 #include<iostream> 4 5 #include<cstring> 6 7 using namespace std; 8 9 int a[4],p; 10 11 char c[260]; 12 13 int main() 14 15 { 16 17 int i,t=0; 18 19 gets(c); 20 21 for (i=0;i<strlen(c);i++) 22 23 { 24 25 if (c[i]=='a'||c[i]=='b'||c[i]=='c') 26 27 { 28 29 p=0; 30 31 t=c[i]-96; //确定是哪个字母 32 33 i+=3; 34 35 if (c[i]>=48&&c[i]<=57) //若为数字 36 37 { 38 39 while (c[i]>=48&&c[i]<=57) 40 41 p=p*10+c[i++]-48; 42 43 a[t]=p; 44 45 } 46 47 else //若为字母 48 49 a[t]=a[c[i++]-96]; 50 51 } 52 53 } 54 55 printf("%d %d %d",a[1],a[2],a[3]); 56 57 return 0; 58 59 } 60 61
嗯,就这样了。