希望将x,y坐标转换为极坐标。代码循环询问x和y的初始输入。它永远不会输出极坐标。
#include <iostream>
#include <math.h>
using namespace std;
int getrec(double x[], double y[]);
void polar(double x, double y, double& r, double& theta);
void showPolarCoord(double radius, double angle);
const int SIZE = 100;
const double toDegrees = 180.0/3.1415926;
int main()
{
double x[SIZE];
double y[SIZE];
double distance[SIZE];
double angle[SIZE];
double x_same[SIZE];
double y_same[SIZE];
int count = getrec(x,y);
for (int i=0; i < count; i++)
{
x_same[i] = x[i] + 6;
y_same[i] = y[i] + 2;
}
for(int i=0; i < count; i++)
{
polar (x_same[i], y_same[i], distance[i], angle[i]);
}
}
int getrec(double x[], double y[])
{ int count = 0;
do
{ cout << "Enter the x coordinate: ";
cin >> x[count];
cout << "Enter the y coordinate: ";
cin >> y[count];
count++;
}
while(count < SIZE && (x[count -1] != 0) && (y[count -1] != 0));
return count;
}
void polar(double x, double y, double& r, double& theta)
{
r = sqrt((pow(x,2))+(pow(y,2)));
theta = atan(y/x) * toDegrees;
return;
}
void showPolarCoord(double radius, double angle)
{
cout << "The polar coordinates are: " << showPolarCoord << endl;
return;
}
答案 0 :(得分:1)
问题一:
在showPolarCoord()
中,您的cout
语句正在打印函数的地址。当你输入函数的名称时会发生这种情况,这最终不是你想要打印的。
你想要的是这样的(除了用于计算角度和半径之外的极角的正确方程式):
void showPolarCoord(double radius, double angle)
{
cout << "The polar coordinates are: " << radius * angle << endl;
}
问题二:
您需要调用showPolarCoord()
中的函数main()
来实际使用其功能。但你没有。
问题三:
这是一团糟。在main()
中,您试图使用这两个语句实现什么目标?
while(count < SIZE && (x[count -1] != 0) && (y[count -1] != 0));
return count;