nyoj 题目371 机器人II

本文介绍了一个简单的迷宫导航模拟程序,使用C语言实现。该程序根据输入的指令序列(L/R/M),控制角色在二维坐标系中移动,并考虑了方向的变化(N/W/S/E)。通过解析指令序列并更新角色的位置和朝向,最终输出角色的位置和朝向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



http://acm.nyist.net/JudgeOnline/problem.php?pid=371

#include<stdio.h>
#include<string.h>
int main()
{
    int T,i,n,k;
    char a[4]={'N','W','S','E'},b[200];
    scanf("%d",&T);
    getchar();
    while(T--)
    {
          int x=0,y=0;    
          scanf("%s",b);
          n=strlen(b);
          for(i=0,k=0;i<n;i++)
          {
                if(b[i]=='L')k++;
                if(b[i]=='R')k--;
                if(b[i]=='M'&&a[k]=='N')
                y+=1;
                if(b[i]=='M'&&a[k]=='W')
                x-=1;
                if(b[i]=='M'&&a[k]=='S')
                y-=1;
                if(b[i]=='M'&&a[k]=='E')
                x+=1;
                
                if(k>0)//如果k超出3或小于-3,让k转换到0~3 
                k=k%4;
                if(k<0)
                k=k%4+4;
                //printf("%d %d %d %c\n",x,y,k,a[k]);
          }
          
          printf("%d %d %c\n",x,y,a[k]);
    }
    return 0;
}
          
                            
                                 
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值