题解 | 坐标移动
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h>
int x;
int y;
char *parr;
int length;
void step();
void getlength();
int main(){
char arr[10000];
scanf("%s", arr);
parr = arr;
while(*parr != '\0'){
step();
parr ++;
}
printf("%d,%d", x, y);
}
void getlength(){
if(*parr == 'A'){
x -= length;
}
else if(*parr == 'D'){
x += length;
}
else if(*parr == 'W'){
y += length;
}
else if(*parr == 'S'){
y -= length;
}
}
void step(){
if(*parr == 'A' || *parr == 'D' || *parr == 'W' || *parr == 'S'){
if(*(parr+1)>='0' && *(parr+1)<='9'){
if(*(parr+2) == ';'){
length = *(parr+1)-48;
getlength();
}
else if(*(parr+2)>='0' && *(parr+2)<='9' && *(parr+3) == ';'){
length = 10*(*(parr+1)-48)+*(parr+2)-48;
getlength();
}
}
}
while(*parr != ';'){
parr++;
}
}
查看18道真题和解析