题解 | #坐标移动#

坐标移动

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

#include <ctype.h>
#include <stdio.h>
#include "string.h"

typedef struct{
    int x;
    int y;
}POS;

POS pos;

void _move(char direction, int value)
{
    switch(direction)
    {
    case 'A':
    {
        pos.x -= value;
        break;
    }
    case 'D':
    {
        pos.x += value;
        break;
    }
    case 'W':
    {
        pos.y += value;
        break;
    }
    case 'S':
    {
        pos.y -= value;
        break;
    }
    }
}

int main() {
    char str[10000] = {0};
    scanf("%s",str);
    char* p = strtok(str, ";");
    int num;
    int len;
    while(p!=NULL)
    {
        len = strlen(p);
        if(len==2)
        {
            if((p[0]=='A'||p[0]=='D'||p[0]=='W'||p[0]=='S')&&isdigit(p[1]))
            {
                num = p[1] - '0';
                _move(p[0],num);
            }          
        }
        else if(len==3)
        {
            if((p[0]=='A'||p[0]=='D'||p[0]=='W'||p[0]=='S')&&isdigit(p[1])&&isdigit(p[2]))
            {
                num = (p[1] - '0')*10+p[2] -'0';
                _move(p[0],num);
            }
        }
        p = strtok(NULL, ";");
    }

    printf("%d,%d",pos.x,pos.y);
    return 0;
}

全部评论

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务