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 】
相关推荐:
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Android okhttputils现在进度显示实例代码
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何使用withoutEvents方法临时禁用模型事件
java获取注册ip实例
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何用IIS7快速搭建并优化网站站点?
使用Dockerfile构建java web环境
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
,南京靠谱的征婚网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
北京企业网站设计制作公司,北京铁路集团官方网站?
如何利用DOS批处理实现定时关机操作详解
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何快速搭建高效服务器建站系统?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel distinct去重查询_Laravel Eloquent去重方法
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
独立制作一个网站多少钱,建立网站需要花多少钱?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
企业网站制作这些问题要关注
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Android自定义控件实现温度旋转按钮效果
js代码实现下拉菜单【推荐】
详解Android图表 MPAndroidChart折线图
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何用PHP工具快速搭建高效网站?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何使用Telescope进行调试?(安装和使用教程)
西安专业网站制作公司有哪些,陕西省建行官方网站?
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何在搬瓦工VPS快速搭建网站?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何用腾讯建站主机快速创建免费网站?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel如何为API编写文档_Laravel API文档生成与维护方法
北京的网站制作公司有哪些,哪个视频网站最好?
如何快速搭建安全的FTP站点?

