``````/***************************************************
Converting radians to degrees, minutes, seconds

Write a program that reads in an angle measure in
radians, and prints out the same angle measure in
degrees, minutes and seconds.  Remember, if d,m,s
is the degree/minutes/seconds measure, all must be
integers, m and s must be in [0,59], and the angle
in degrees must equal

d + m/60 + s/3600

to within less than 1 second of a degree of error.

To convert from a radians angle measure to degrees,

where Pi is approximately 3.14159265358979323846.
***************************************************/
#include "si204.h"

int main() {
// store Pi as a variable, for convenience and clarity
double pi = 3.14159265358979323846;

fputs("Enter angle measure in radians: ", stdout);
double r;

// compute angle in degrees (with fractions)
double a;
a = r * 180.0 / pi;

// compute whole degree number + leftover
int d;
d = (int)a; // the fractional part of a gets truncated!
double r1;
r1 = a - d; // leftover in degrees

// compute whole minute number + leftover
int m;
m = (int)(r1 * 60.0); // fractional part gets truncated!
double r2;
r2 = r1 - m/60.0; // leftover in degrees

// compute whole second number + leftover
int s;
s = (int)(r2 * 3600.0);

// print out results
writenum(d, stdout);
fputs(" degrees, ", stdout);
writenum(m, stdout);
fputs(" minutes and ", stdout);
writenum(s, stdout);
fputs(" seconds\n", stdout);

return 0;
}``````