题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <string.h>
int main()
{
char str[10003]={0};
int i,count=0,x=0,y=0;
fgets(str, sizeof(str), stdin);
for(i=0;i<10002;i++)
{count++;
if(str[i]==';')
{
switch(str[i-count+1])
{
case 65:
{
if(count==3&&48<=str[i-count+2]&&57>=str[i-count+2])
x=x-(str[i-count+2]-48);
if(count==4&&48<=str[i-count+2]&&57>=str[i-count+2]&&48<=str[i-count+3]&&57>=str[i-count+3])
x=x-(str[i-count+2]-48)*10- (str[i-count+3]-48);
}
break;
case 83:
{
if(count==3&&48<=str[i-count+2]&&57>=str[i-count+2])
y=y-(str[i-count+2]-48);
if(count==4&&48<=str[i-count+2]&&57>=str[i-count+2]&&48<=str[i-count+3]&&57>=str[i-count+3])
y=y-(str[i-count+2]-48)*10- (str[i-count+3]-48);
}
break;
case 87:
{
if(count==3&&48<=str[i-count+2]&&57>=str[i-count+2])
y=y+str[i-count+2]-48;
if(count==4&&48<=str[i-count+2]&&57>=str[i-count+2]&&48<=str[i-count+3]&&57>=str[i-count+3])
y=y+(str[i-count+2]-48)*10+ (str[i-count+3]-48);
}
break;
case 68:
{
if(count==3&&48<=str[i-count+2]&&57>=str[i-count+2])
x=x+str[i-count+2]-48;
if(count==4&&48<=str[i-count+2]&&57>=str[i-count+2]&&48<=str[i-count+3]&&57>=str[i-count+3])
x=x+(str[i-count+2]-48)*10+ (str[i-count+3]-48);
}
break;
default:
break;
}
count=0;
}
}
printf("%d,%d",x,y);
}