移动坐标
来源:互联网 发布:禁入证券市场 知乎 编辑:程序博客网 时间:2024/06/02 13:37
<pre name="code" class="cpp">/*开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔。 非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。 下面是一个简单的例子 如: A10;S20;W10;D30;X;A1A;B10A11;;A10;*/void movepoint(char* s,int* x,int* y);void main(){char str[MAX]="0";int x=0,y=0;while(1){ scanf("%s",str); movepoint(str,&x,&y); cout<<x<<","<<y<<endl;}}//输入字符串,输出最终移动的坐标void movepoint(char* s,int* x,int* y){char* p;char ss[MAX][MAX]={""}; //1、以分号分割字符串,分割的子串存储到二维数组ss中。p=strtok(s,";");int i=0;while(p!='\0'){sprintf(ss[i],"%s",p);p=strtok(NULL,";");i++;}int k=0,k1=0,k2=0;for(int j=0;j<i;j++){ k1=(ss[j][1]-48);//0的ascii码为48 k2=(ss[j][2]-48); //2、判别子串是否有效分两步:第一步 长度是否为3,第1个和第2个字符是否是数字(从0开始算) if( (strlen(ss[j])==2 && 0<=k1&&k1<=9)|| (strlen(ss[j])==3 && 0<=k1&&k1<=9 && 0<=k2&&k2<=9) ){ //3、将数字子串转为数字int性 k=atoi(ss[j]+1); //4、第二步:判别子串的第一个字符是否为ADSW;switch(ss[j][0]){case 'A':{//左移动 *x-=k;break; } case 'D':{//右移动 *x+=k;break; }case 'W':{//上移动 *y+=k;break; } case 'S':{//下移动 *y-=k;break; }default:{ break;//舍去 }} } }}
0 0
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 移动坐标
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- Java集合List、Set和Map的区别
- CoordinatorLayout协调布局,实现悬浮导航条
- java 知识点总结4
- Leetcode 28. Implement strStr() (Easy) (cpp)
- 正则表达式入门教程
- 移动坐标
- UGUI工厂
- python-字符串知识点
- Java并发编程:进程和线程之由来
- hdu 5367(线段树+区间合并)
- ASCII字符表
- Js random随机生成正整数
- 影像匹配方法
- 码神-day4-linux