转载请注明出处:http://blog.csdn.net/a1dark
分析:一道简单的模拟题、就是题目英文有点长、各种蛋疼、让你V和A分别逆时针旋转和顺时针旋转、然后输出转过之后的坐标就OK了、
#include<stdio.h> #include<string.h> #include<stdio.h> #include<iostream> using namespace std; char st[205]; int flag,x,y; void move(int &x,int &y,int &flag,char dict){ if(flag==0){ if(dict=='A'){ x=x+10; y=y; flag=1; } else{ x=x-10; y=y; flag=3; } } else if(flag==1){ if(dict=='A'){ x=x; y=y-10; flag=2; } else{ x=x; y=y+10; flag=0; } } else if(flag==2){ if(dict=='A'){ x=x-10; y=y; flag=3; } else{ x=x+10; y=y; flag=1; } } else{ if(dict=='A'){ x=x; y=y+10; flag=0; } else{ x=x; y=y-10; flag=2; } } } int main(){ while(scanf("%s",&st)!=EOF){ printf("300 420 moveto 310 420 lineto "); int len=strlen(st); flag=1; int i; x=310;y=420; for(i=0;i<len;i++){ move(x,y,flag,st[i]); printf("%d %d lineto ",x,y); } printf("stroke showpage "); } return 0; }