代码不输出,循环输入语句

时间:2016-04-04 15:03:32

标签: c++

希望将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;
} 

1 个答案:

答案 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;