0

我尝试搜索 awnsers,但所有线程都是不同的语言。

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

void calcDistance (int x1, int y1, int x2, int y2);

int main()
{
    int x1, y1, x2, y2;
    cout << "Enter the points in coordinate pair form, ommiting parantheses" << endl;
    cin >> x1 >> y1 >> x2 >> y2;

    calcDistance (x1,  y1,  x2,  y2);

    system("pause");
    // how do I cout the dist in main-- says dist isn't declared

}


void calcDistance (int x1, int y1, int x2, int y2)
{
    int sideA;
    sideA = x2 - x1;

    int sideB;
    sideB = y2 -y1;

    int sideAsqd;
    sideAsqd = sideA * sideA;

    int sideBsqd;
    sideBsqd = sideB * sideB;

    int sideCsqd;
    sideCsqd = sideAsqd + sideBsqd;

    double dist;
    dist = sqrt(sideCsqd);

    cout << "The calculated distance is "<< dist << endl;

}

如何让第二个 cout 出现在 main.cout 中。我尝试将它放在 main 中,但随后我收到一条错误消息,指出 dist 未在范围内声明。

我希望能够在 main 中使用 dist 值,而它已在函数中计算。

4

2 回答 2

5

改变你的功能:

double calcDistance (int x1, int y1, int x2, int y2)
{
    int sideA = x2 - x1;

    int sideB = y2 -y1;

    int sideAsqd = sideA * sideA;

    int sideBsqd = sideB * sideB;

    int sideCsqd = sideAsqd + sideBsqd;

    double dist = sqrt(sideCsqd);

    return dist;    
}

主要这样做:

double res =  calcDistance (x1,  y1,  x2,  y2);
cout << "The calculated distance is "<< res << endl;
于 2013-10-08T11:03:37.520 回答
1

给定一个函数,比如说

void calcDistance (int x1, int y1, int x2, int y2)
{
  //...
  double dist;
  //...
}

该变量dist在右大括号处超出范围,因此您不仅不能从其他地方引用它,而且在函数之外它也不存在。
如果您想要其他地方的值,请将其返回:

double calcDistance (int x1, int y1, int x2, int y2)
{
  //...
  double dist;
  //...
  return dist;
}

要在其他地方使用它,只需捕获返回:

double distance = calcDistance(1,2,3,4);

distance现在您有了另一个可以使用的局部变量。

于 2013-10-08T11:17:08.643 回答