笛卡尔形式: z = a + b * i
极坐标形式: z = r * (cos(𝜑) + i * sin(𝜑))
𝑟= √𝑎2+𝑏2
𝜑=arccos(𝑎/𝑟)=arcsin(𝑏/𝑟)
𝑎=𝑟∙cos𝜑
𝑏=𝑟∙sin𝜑
并完成下面两个自定义函数
void inPolarform(double a, double b, double *r, double *phi);
void inKartesischeForm(double r, double phi, double *a, dou-ble *b);
最后需要使用第二个函数来检验结果是否正确
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <math.h>
void inPolarform(double a, double b, double *r, double *phi)
{
*r = sqrt(a*a + b*b);
*phi = acos(a/(*r));
}
void inKartesischeForm(double r, double phi, double *a, double *b)
{
*a = r*cos(phi);
*b = r*sin(phi);
}
int main()
{
double a = 2;
double b = 3;
double r,phi,a2,b2;
inPolarform(a,b,&r,&phi);
inKartesischeForm(r,phi,&a2,&b2);
printf("a2=%g b2=%g\n",a2,b2);
return 0;
}