```cpp
#include <stdio.h>
int main(void)
{
int x1, y1, x2, y2, t, s = 0, i;
char w[51],c[2];
scanf("%d%d%d%d%d", &x1, &y1, &x2, &y2, &t);
for (i = 0; i < t; ++i) {
scanf("%s", &c);
w[i]=c[0];
}
for (i = 0; i < t; ++i)
{
if (x1 == x2 && y1 == y2)
{
printf("%d", s);
return 0;
}
if (x1 != x2)
{
if (x2 - x1 > 0)
{
if (w[i] == 'E')
{
s++;
x1++;
}
}
else
{
if (w[i] == 'W')
{
s++;
x1--;
}
}
}
if (y1 != y2)
{
if (y2 - y1 > 0)
{
if (w[i] == 'N')
{
s++;
y1++;
}
}
else
{
if (w[i] == 'S')
{
s--;
y1--;
}
}
}
}
if (x1 != x2 || y1 != y2)
printf("-1");
return 0;
}
```
by simonG @ 2022-09-03 07:58:43
@[kk74751](/user/679327) 你的字符串读入有危险
by simonG @ 2022-09-03 07:59:02
@[gaosichensb](/user/253936)
我一开始是写
```c
for (i = 0; i < t; ++i)
scanf("%c", &w[i]);
```
后来因为会吃回车,所以在前面加了getchar()
为啥scanf("%c",&w[i]);会把回车输入数组,我记得以前这样写没问题
谢谢你的解答
by SCAU_Link @ 2022-09-03 09:55:55