- 248 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:42:30 ]
- >>240
#include<stdio.h> #include<math.h> typedef struct { int deg, min, sec; } Degree; void rad2deg(Degree *pdeg, double rad) { pdeg->deg = (int)rad; rad = (fabs(rad) - fabs(pdeg->deg)) * 60; pdeg->min = (int)rad; rad = (rad - pdeg->min) * 60; pdeg->sec = (int)rad; } void print_deg(const Degree *pdeg) { printf("%d度%02d分%02d秒\n", pdeg->deg, pdeg->min, pdeg->sec); } void degsub(Degree *pdiff, const Degree *pdeg1, const Degree *pdeg2) { pdiff->sec = pdeg1->sec - pdeg2->sec; pdiff->min = pdeg1->min - pdeg2->min; pdiff->deg = pdeg1->deg - pdeg2->deg; if (pdiff->sec < 0) { pdiff->sec += 60; pdiff->min --; } if (pdiff->min < 0) { pdiff->min += 60; pdiff->deg --; } } int main() { double rad1, rad2; Degree deg1, deg2, degdiff; printf("radian1="); scanf("%lf", &rad1); printf("radian2="); scanf("%lf", &rad2); rad2deg(°1, rad1); printf("degree1="); print_deg(°1); rad2deg(°2, rad2); printf("degree2="); print_deg(°2); degsub(°diff, °1, °2); printf("degree1-degree2="); print_deg(°diff); return 0; }
|

|