题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
C语言解题
#include <stdio.h> #include <string.h> int main() { char tmp[10000]; int len,i,off,num_len,x=0,y=0,off_tmp; char dir; scanf("%[^\n]", tmp); len = strlen(tmp); i = 0; while(i!=len) { dir = tmp[i]; if(dir!='A' && dir!='S' && dir!='D' && dir!='W') { //此时输入无效,到下一个 while(tmp[i++] != ';'); continue; } i++; if(tmp[i]<'0' || tmp[i] > '9') { while(tmp[i++] != ';'); continue; } sscanf(&tmp[i],"%d",&off); num_len = 0; off_tmp = off; while(off_tmp) { off_tmp /= 10; num_len++; } i += num_len; if(tmp[i] != ';') { while(tmp[i++] != ';'); continue; } i++; switch(dir) { case 'A': x -= off; break; case 'D': x += off; break; case 'W': y += off; break; case 'S': y -= off; break; } } printf("%d,%d",x,y); return 0; }