Trochę nieczytelny kod, ale mam taką uwagę do miejsca gdzie drukujesz wynik
if(x==0)
{
if(y>0)
{
cout<<"0 "<<y;
}
else if(y<0)
{
cout<<"1 "<<y;
}
}
jeśli y jest ujemne to i tak powinno wyświetlić liczbę kroków jako liczbę dodatnią.
Dla kierunku zachód - wschód drukujesz wartości 3 i 4 zamiast 2 i 3 (numeracja kierunków w zadaniu jest od zera)
else if(y==0)
{
if(x>0)
{
cout<<"3 "<<x;
}
else if(x<0)
{
cout<<"4 "<<+((x*(-1))*2);
}
}
else if(y!=0&&x!=0)
{
if(y>0)
{
cout<<"0 "<<y;
}
else if(y<0)
{
cout<<"1 "<<y;
}
cout<<endl;
if(x>0)
{
cout<<"3 "<<x;
}
else if(x<0)
{
cout<<"4 "<<+((x*(-1))*2);
}
}
Dodatkowo zastanów się tam nad ifami czy nie można jakoś zredukować ich liczby (w miejscu wyświetlania wyników).