题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int coord[2] = {0};
char ch;
int count = 0;
char str[3] = {0};
int signal = 0;
char last;
while ((ch = getchar()) != '\n')
{
last = ch;
if ((ch != 'A') && (ch != 'D') && (ch != 'W') && (ch != 'S'))
{
if (last == ';')
{
continue;
}
while ((ch = getchar()) != ';');
//continue;
}
if (ch == 'A')
{
while ((ch = getchar()) != ';')
{
if (ch < '0' || ch > '9' || count > 3)
{
count = 0;
memset(str, 0, sizeof(str));
signal = 1;
break;
}
str[count++] = ch;
}
if (signal == 1)
{
signal = 0;
continue;
}
int num = 0;
num = atoi(str);
coord[0] -= num;
count = 0;
memset(str, 0, sizeof(str));
continue;
}
if (ch == 'D')
{
while ((ch = getchar()) != ';')
{
if (ch < '0' || ch > '9' || count > 3)
{
count = 0;
memset(str, 0, sizeof(str));
signal = 1;
break;
}
str[count++] = ch;
}
if (signal == 1)
{
signal = 0;
continue;
}
int num = 0;
num = atoi(str);
coord[0] += num;
count = 0;
memset(str, 0, sizeof(str));
continue;
}
if (ch == 'W')
{
while ((ch = getchar()) != ';')
{
if (ch < '0' || ch > '9' || count > 3)
{
count = 0;
memset(str, 0, sizeof(str));
signal = 1;
break;
}
str[count++] = ch;
}
if (signal == 1)
{
signal = 0;
continue;
}
int num = 0;
num = atoi(str);
coord[1] += num;
count = 0;
memset(str, 0, sizeof(str));
continue;
}
if (ch == 'S')
{
while ((ch = getchar()) != ';')
{
if (ch < '0' || ch > '9' || count > 3)
{
count = 0;
memset(str, 0, sizeof(str));
signal = 1;
break;
}
str[count++] = ch;
}
if (signal == 1)
{
signal = 0;
continue;
}
int num = 0;
num = atoi(str);
coord[1] -= num;
count = 0;
memset(str, 0, sizeof(str));
continue;
}
}
printf("%d,", coord[0]);
printf("%d", coord[1]);
return 0;
}
安克创新 Anker公司福利 574人发布
