#include #include #include #include #define MAX 201 int main() { int n=0,i=0, j=0, poc=1; double d=0, x, y; char ret[MAX], pom[5], smer=' '; gets(ret); while (strcmp(ret, "END") != 0) { x=0;y=0;i=0; while (smer != '.') { pom[0] = ret[i++]; if(ret[i] <= '9') { pom[1] = ret[i++]; pom[2] = '\0'; // poc=2; } else { pom[1] = '\0'; // poc=1; } n=atoi(pom); //printf("%d ", n); smer=ret[i++]; if(ret[i]!=',' && ret[i] != '.') { d = ((double)n)/sqrt((double)2); // printf("%f", d); switch (smer) { case 'N': y+=d;break; case 'E': x+=d;break; case 'W': x-=d;break; case 'S': y-=d;break; } switch (ret[i]) { case 'N': y+=d;break; case 'E': x+=d;break; case 'W': x-=d;break; case 'S': y-=d;break; } i++; } else { switch (smer) { case 'N': y+=n;break; case 'E': x+=n;break; case 'W': x-=n;break; case 'S': y-=n;break; } } i++; } printf ("You can go to (%.3f, %.3f), the distance is %.3f steps.\n", x, y, sqrt(x*x+y*y)); smer=' '; gets(ret); } return 0; }