Total Submission(s): 3549 Accepted Submission(s): 2036
命令A:将内存M1的数据装到寄存器R1中;
命令B:将内存M2的数据装到寄存器R2中;
命令C:将寄存器R3的数据装到内存M1中;
命令D:将寄存器R3的数据装到内存M2中;
命令E:将寄存器R1中的数据和寄存器R2中的数据相加,结果放到寄存器R3中;
命令F:将寄存器R1中的数据和寄存器R2中的数据相减,结果放到寄存器R3中。
你的任务是:设计一个程序模拟PpMm的运行。
其他说明:R1,R2,R3的初始值为0,所有中间结果都在-2^31和2^31之间。
100 288 ABECED 876356 321456 ABECAEDBECAF
388,388 2717080,1519268
解题思路:本题思路非常简单,只要用switch分开各指令的操作,按题目要求一步一步走即可!
#include<stdio.h> #include<string.h> int main() { int m1,m2,r1,r2,r3; char h[201]; while(scanf("%d%d",&m1,&m2)!=EOF) { r1=0; r2=0; r3=0; scanf("%s",h); int n=strlen(h); for(int i=0;i<n;i++) { switch(h[i]) { case 'A':r1=m1;break; case 'B':r2=m2;break; case 'C':m1=r3;break; case 'D':m2=r3;break; case 'E':r3=r1+r2;break; case 'F':r3=r1-r2; } } printf("%d,%d\n",m1,m2); } return 0; }