C语言把直角坐标转换为极坐标实例 C语言预定义宏和预定义标识符 C语言定义泛型宏 C语言把直角坐标转换为极坐标实例 /* rect_pol.c -- converts rectangular coordinates to polar */ #include <stdio.h> #include <math.h> #define RAD_TO_DEG (180/(4 * atan(1))) typedef struct polar_v { double magnitude; double angle; } Polar_V; typedef struct rect_v { double x; double y; } Rect_V; Polar_V rect_to_polar(Rect_V); int main(void) { Rect_V input; Polar_V result; puts("Enter x and y coordinates; enter q to quit:"); while (scanf("%lf %lf", &input.x, &input.y) == 2) { result = rect_to_polar(input); printf("magnitude = %0.2f, angle = %0.2f\n", result.magnitude, result.angle); } puts("Bye."); return 0; } Polar_V rect_to_polar(Rect_V rv) { Polar_V pv; pv.magnitude = sqrt(rv.x * rv.x + rv.y * rv.y); if (pv.magnitude == 0) pv.angle = 0.0; else pv.angle = RAD_TO_DEG * atan2(rv.y, rv.x); return pv; } C语言预定义宏和预定义标识符 C语言定义泛型宏