题解 | #坐标移动#

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x = 0;
    int y = 0;
    int i = 0;
    char str[10001] = {0};
    
    scanf("%s", str);
    
    char *p = str;
    char tmp[10001] = {0};

    while (*p != '\0') {
        if (*p != ';') {
            tmp[i] = *p;
            p++;
            i++;
        } else {
            tmp[i] = *p;
            if (!((i <= 3 && i >= 2) && ((tmp[1] >= '1') && (tmp[1] <= '9')) && (((tmp[2] >= '0') && (tmp[2] <= '9')) || tmp[2] == ';'))) {
                p++;
                i = 0;
                memset(tmp, 0, sizeof(tmp));
                continue;
            } else {
                if (tmp[0] == 'A') {
                    x -= atoi(&tmp[1]);
                } else if (tmp[0] == 'D') {
                    x += atoi(&tmp[1]);
                } else if (tmp[0] == 'W') {
                    y += atoi(&tmp[1]);
                } else if (tmp[0] == 'S') {
                    y -= atoi(&tmp[1]);
                }
                p++;
                i = 0;
                memset(tmp, 0, sizeof(tmp));
            }
        }
    }
    
    printf("%d,%d", x, y);
    
    return 0;
}
全部评论

相关推荐

10-05 11:11
海南大学 Java
投票
理想江南137:感觉挺真诚的 感觉可以试一试
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务