#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int x = 0; int y = 0; //逐个处理每个指令 while(1) { char buf[4]= {'\0'}; //读取除分号;外的字符 //除非遇到文件结束符EOF if(scanf("%[^;]", buf) == EOF){ break; } //清除输入缓存区中的分号; getchar(); //长度大于3,则废弃 if(strlen(buf) > 3) { continue; } //方向符号错误,废弃 if((buf[0]!='A') && (buf[0]!='D') && (buf[0]!='W') && (buf[0]!='S')) { continue; } //移动数字非法的,废弃 if(buf[1] < '0' || buf[1] >'9') { continue; } if(strlen(buf) == 3) { if(buf[2] < '0' || buf[2] >'9') { continue; } } //合法符号,则进行移动 switch (buf[0]) { case 'A': //从buf[1]开始的地址开始转换 //直到遇到非数字字符 x -= atoi(&buf[1]); break; case 'D': x += atoi(&buf[1]); break; case 'W': y += atoi(&buf[1]); break; case 'S': y -= atoi(&buf[1]); break; } } printf("%d,%d\n", x, y); return 0; }