C语言 坐标移动详解及实例代码
发布时间 - 2026-01-10 22:29:31 点击率:次题目描述

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
输入:
合法坐标为A(或者D或者W或者S) + 数字(两位以内)
坐标之间以;分隔。
非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。
下面是一个简单的例子 如:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
处理过程:
起点(0,0) + A10 = (-10,0) + S20 = (-10,-20) + W10 = (-10,-10) + D30 = (20,-10) + x = 无效 + A1A = 无效 + B10A11 = 无效 + 一个空 不影响 + A10 = (10,-10)
结果 (10, -10)
输入描述:
一行字符串
输出描述:
最终坐标,以,分隔
输入例子:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
输出例子:
10,-10
Code:
#include<iostream>
#include<string>
using namespace std;
bool isValid(string s, char &key, int &step){
if (s.size()<2 || s.size()>3)return false;
if (s[0] != 'A' && s[0] != 'D' && s[0] != 'W' && s[0] != 'S')
return false;
key = s[0];
if (s.size() == 2 && s[1] >= '0' && s[1] <= '9'){
step = s[1] - '0';
return true;
}
if (s.size() == 3 && s[1] >= '0' && s[1] <= '9' && s[2] >= '0' && s[2] <= '9'){
step = (s[1] - '0') * 10 + (s[2] - '0');
return true;
}
return false;
}
void caculator(string s, int &x, int &y, char key, int step){
switch (key){
case 'A':
x -= step;
break;
case 'D':
x += step;
break;
case 'W':
y += step;
break;
case 'S':
y -= step;
break;
}
return;
}
int main(){
string str;
while (cin >> str){
int x = 0;
int y = 0;
int i = 0;
while (i<str.size()){
string temp;
char key;
int step;
while (str[i] != ';'){
temp.push_back(str[i]);
i++;
}
if (isValid(temp, key, step))
caculator(temp, x, y, key, step);
i++;
}
cout << x << ',' << y<<endl; //must add endl(wtf...,waste time)
}
return 0;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C语言
# 坐标移动
# 坐标移动如何实现
# 坐标移动实例代码
# c语言计算三角形面积代码
# C语言中字符的输入输出以及计算字符个数的方法详解
# C语言求幂计算的高效解法
# C语言实现计算树的深度的方法
# C语言中计算正弦的相关函数总结
# 安装OpenMPI来配合C语言程序进行并行计算
# C语言科学计算入门之矩阵乘法的相关计算
# C语言简单实现计算字符个数的方法
# 北邮计算机考研复试题的C语言解答精选
# C语言中计算二叉树的宽度的两种方式
# C语言实现直角坐标转换为极坐标的方法
# 是一个
# 两位
# 希望能
# 并将
# 谢谢大家
# 坐标点
# Code
# class
# cpp
# brush
# gt
# string
# namespace
# include
# lt
# iostream
# A1A
# YAD
# strong
# br
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
怎么用AI帮你设计一套个性化的手机App图标?
如何快速生成可下载的建站源码工具?
进行网站优化必须要坚持的四大原则
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Windows Hello人脸识别突然无法使用
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
如何在万网利用已有域名快速建站?
Laravel如何实现API速率限制?(Rate Limiting教程)
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
装修招标网站设计制作流程,装修招标流程?
JS弹性运动实现方法分析
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
,网页ppt怎么弄成自己的ppt?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
简历没回改:利用AI润色让你的文字更专业
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何快速搭建自助建站会员专属系统?
如何挑选最适合建站的高性能VPS主机?
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何实现本地化和多语言支持?(i18n教程)
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Firefox Developer Edition开发者版本入口
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
大连 网站制作,大连天途有线官网?
北京的网站制作公司有哪些,哪个视频网站最好?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在万网自助建站平台快速创建网站?
Python制作简易注册登录系统
如何在IIS7上新建站点并设置安全权限?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
如何在阿里云虚拟主机上快速搭建个人网站?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
详解Android——蓝牙技术 带你实现终端间数据传输
青岛网站建设如何选择本地服务器?
QQ浏览器网页版登录入口 个人中心在线进入
javascript读取文本节点方法小结
如何快速搭建支持数据库操作的智能建站平台?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何用IIS7快速搭建并优化网站站点?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】

