问题 B: 22-循环-2-蠢蠢机器人III

问题 B: 22-循环-2-蠢蠢机器人III

题目描述

#include<stdio.h>
#include<string.h>
int main()
{
    int m=0;
    while (scanf("%d",&m)!=EOF)
    {
		getchar();//scanf与gets之间吃掉回车
        double x=0,y=0;
		int flag1=0;
        for (int  i = 0; i < m; i++)
        {
            //getchar();
            char str[10000]={0};
            
            gets(str);
            
            if (strcmp(str,"TURN")==0)//
            {
                flag1++;//puts(str);
                //printf("%d\n",flag1);
            }
            else
            {
                double n=0;
                sscanf(str,"%*[A-Z]%*[ ]%lf",&n);
                //printf("%lf\n",n);
                //printf("%d\n",flag1);
                if (flag1%4==0)
                {
                    y+=n;
                }
                else if (flag1%4==1)
                {
                    x+=n;
                }
                else if (flag1%4==2)
                {
                    y-=n;
                }
                else if (flag1%4==3)
                {
                    x-=n;
                }
                //flag1=0;
            }
            
            
        }
        printf("%.3f %.3f\n",x,y);
        
        
    }
    
    return 0;
}

小南升级了蠢蠢机器人,现在机器人站在笛卡尔坐标系的原点,面向y轴正方向,给定若干指令,求机器人最终坐标位置,保留到小数点后3位。
指令格式为: 
(1)TURN:表示右转90度。
(2)GO n:表示向前(面向的方向)直走n距离,n为一个正实数。
 

输入

多样例。每个测试文件包含多组测试数据,每组测试数据的第一行m,表示有m个操作指令(1≤m≤100)。
接下来m行,每行一个指令。

输出

对于每组测试数据,输出一组实数表示机器人的最终位置(x坐标和y坐标),以空格隔开,保留3位小数。每个结果占一行。每处理完一组数据,机器人应复位到数轴原点。

样例输入 Copy

3
TURN
GO 1
TURN

样例输出 Copy

1.000 0.000

提示

为了保证计算精度,实数建议定义为double型。

1、sscanf的妙用:

sscanf(str,"%*[A-Z]%*[ ]%lf",&n);

sscanf函数用法详解_坚持就有希望的博客-CSDN博客_sscanf_s函数的用法

2、scanf与gets之间的getchar()

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值