#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[10000], smer=' '; gets(ret); while (strcmp(ret, "END") != 0) { x=0;y=0;i=0;j=0; while (smer != '.') { j=0; pom[j++] = ret[i++]; while (ret[i] >='0' && ret[i] <= '9') { pom[j++] = ret[i++]; //pom[j++] = '\0'; // poc=2; } pom[j++] = '\0'; n=atoi(pom); // printf("%d ", n); smer=ret[i++]; if(ret[i]!=',' && ret[i] != '.') { d = ((double)n)/sqrt((double)2); 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; } }smer =ret[i]; 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; }