c++用直角坐标值转换为极坐标值 使用变量的引用

2024年12月05日 00:16
有2个网友回答
网友(1):

#include
#include

void f(float &x,float &y);
int main()
{
float x,y;
printf("input x:\n");
scanf("%f",&x);
printf("input y:\n");
scanf("%f",&y);
f(x,y);
printf("x=%f\n",x);
printf("y=%f\n",y);

return 0;
}

void f(float &x,float &y)
{
float c=sqrt(x*x+y*y);
float q=atan(y/x);
x=c;
y=q;
}

网友(2):

不知道这样写符不符合你的要求;其实从某些程度上讲引用和指针没多大差别,很多时候对变量的引用其实就是取其地址,呵呵
/*编写一个函数f,将传入此函数的直角坐标值转换为极坐标值,并返回主调函数中。求极坐标的公式是:C=sqrt(x*x+y*y),q=arctan(y/x);
要求使用变量的引用。
要求使用变量的引用。
要求使用变量的引用。*/
#include
#include

void suanfa(float *C,float *q, float x,float y)//前两个参数其实就是指针
{
*C = sqrt(x*x+y*y);
*q = atan(y/x);
}
void main()
{
float C ,q;
float x = 5.0;
float y=10.0;
suanfa(&C,&q,x,y);//引用
printf(" %f, %f\n",C,q);//注意输出和用指针没多大差别
}