题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include<stdio.h>
#include<string.h>
/*定义一个函数,返回对应数组的指针*/
/*这个函数用于计算每个坐标字符串带来的x,y变化*/
int *coordinate_movement(char *str,int end,int len){
  char coor[999]={"\0"};
  /*定义一个静态变量,在程序的整个生命周期中都存在*/
 static int xy[2]={0,0};
 /*初始化为0,以便每次访问时都从零开始*/
 xy[0]=0;
 xy[1]=0;
int i=0;
int a=0;
int xl=0,yl=0;
/* printf("%d",len);
printf("%d",end);
printf("%c",str[0]); */
for ( i = 0; i < len; i++) /*长度为len,从0开始,故是i<len*/
{
  a=end-len+i;
 coor[i]=str[a];
}
//printf("%s\n",coor);
/*判断方向*/
switch (coor[0]) {
case 'A':xl=-1;
break;
case 'D':xl=1;
break;
case 'W':yl=1;
break;
case 'S':yl=-1;
break;
}
for (i=1; i<len; i++) {
if (coor[i]<'0' || (int)coor[i]>'9' ) {
xy[0]=0;
xy[1]=0;
//printf("x变化的值--%d\n",xy[0]);
return xy;
}
xy[0] =(coor[i]-'0')*xl+10*xy[0];
xy[1] =(coor[i]-'0')*yl+10*xy[1];
}
/* printf("c%s",coor);
printf("xl%d",xl); */
//printf("x变化的值--%d\n",xy[0]);
return xy;
}

int main(){
    /*变量定义up*/
  
    int x=0,y=0;
    /*一个指向整数的指针*/
    int *xyp;
    char str[1000]={"\0"};
    char *p_str=str;
    char coor[1000]={"\0"};
    char *p_coor=coor;
    int len_s=0;
    int len_c=0;
    int i=0;
    /*变量定义区down*/
    /*读取数据*/
    scanf("%s",str);
    len_s=strlen(str);
    //printf("%s\n",str);
    for (i=0; i<=len_s; i++) {
      /*记录坐标的长度,记得处理完一个坐标后要归零*/
      len_c++;
      if (str[i]==';') {  
        xyp=coordinate_movement(str,i,len_c-1);
         x+=*xyp;
         y+=*(xyp+1);
         len_c=0;
        }
    }
    printf("%d,%d",x,y);
    return 0;
}

我的思路是先把坐标文本字符串分解成一个一个的坐标字符块,然后再用函数对这个字符块处理得到每次的坐标增量,用一个长度为2的数组来存放x,y坐标。就是指针还是用不利索,不然应该可以写得更清爽一点。

全部评论

相关推荐

11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
评论
1
收藏
分享
正在热议
# 25届秋招总结 #
442727次浏览 4513人参与
# 春招别灰心,我们一人来一句鼓励 #
42019次浏览 533人参与
# 阿里云管培生offer #
120301次浏览 2220人参与
# 地方国企笔面经互助 #
7965次浏览 18人参与
# 同bg的你秋招战况如何? #
76850次浏览 564人参与
# 实习必须要去大厂吗? #
55781次浏览 961人参与
# 北方华创开奖 #
107440次浏览 599人参与
# 虾皮求职进展汇总 #
115819次浏览 886人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11607次浏览 288人参与
# 实习,投递多份简历没人回复怎么办 #
2454766次浏览 34858人参与
# 提前批简历挂麻了怎么办 #
149907次浏览 1977人参与
# 在找工作求抱抱 #
906039次浏览 9421人参与
# 如果公司给你放一天假,你会怎么度过? #
4759次浏览 55人参与
# 你投递的公司有几家约面了? #
33207次浏览 188人参与
# 投递实习岗位前的准备 #
1195967次浏览 18550人参与
# 机械人春招想让哪家公司来捞你? #
157638次浏览 2267人参与
# 双非本科求职如何逆袭 #
662289次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12764次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35833次浏览 384人参与
# 简历中的项目经历要怎么写? #
86924次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20137次浏览 240人参与
# 我的上岸简历长这样 #
452024次浏览 8088人参与
牛客网
牛客企业服务