#include #include #include char line[2000]; int main () { long val; char *p,*q; double w,n,nmult,wmult; double o2 = 1/sqrt(2); while (1) { gets(line); if (*line == 'E') break; p = line; w = n = 0; while (*p != '.') { val = strtol(p, &q, 10); p = q; switch(*p++) { case 'N': nmult = 1; wmult = 0; break; case 'S': nmult = -1; wmult = 0; break; case 'E': nmult = 0; wmult = -1; break; case 'W': nmult = 0; wmult = 1; break; } switch(*p) { case 'E': p++; nmult *= o2; wmult = -o2; break; case 'W': p++; nmult *= o2; wmult = o2; break; } if (*p == ',') p++; n += nmult * val; w += wmult * val; } printf("You can go to (%0.3f,%0.3f), the distance is %0.3f steps.\n", -w,n,sqrt(n*n+w*w)); } return 0; }