function:
int angDist(int p1, int p2) {
int rawdist = p2 - p1;
while (rawdist < -180) rawdist += 360;
while (rawdist >= +180) rawdist -= 360;
return rawdist;
}
and test code:
#include <iostream>
using namespace std;
int angDist(int p1, int p2) {
int rawdist = p2 - p1;
while (rawdist < -180) rawdist += 360;
while (rawdist >= +180) rawdist -= 360;
return rawdist;
}
#define printfunc(x,y) cout << "x: " << x << "y: " << y << "angDist(x, y): " << angDist(x, y) << endl
int main() {
printfunc(90, 180);
printfunc(180, 90);
printfunc(45, 359);
printfunc(315,90);
}
prints out results you gave