C++ 使用函数';主函数中的s局部变量

C++ 使用函数';主函数中的s局部变量,c++,function,C++,Function,我试着搜索awnsers,但是所有的线程都是不同的Lang #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 poin

我试着搜索awnsers,但是所有的线程都是不同的Lang

#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;

}
#包括
#包括
#包括
使用名称空间std;
空隙距离(int-x1、int-y1、int-x2、int-y2);
int main()
{
int-x1,y1,x2,y2;
cout x1>>y1>>x2>>y2;
钙距离(x1,y1,x2,y2);
系统(“暂停”);
//我怎么才能在main中找到dist呢?说dist没有声明
}
空距(整数x1、整数y1、整数x2、整数y2)
{
内西达;
sideA=x2-x1;
int sideB;
sideB=y2-y1;
int sideAsqd;
sideAsqd=sideA*sideA;
int sideBsqd;
sideBsqd=sideB*sideB;
int sideCsqd;
sideCsqd=sideAsqd+sideBsqd;
双区;
dist=sqrt(sideCsqd);
不能更改您的功能:

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;
double res=calcDistance(x1,y1,x2,y2);
不能更改您的功能:

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;
double res=calcDistance(x1,y1,x2,y2);
cout给定一个函数,比如

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);
现在您有了另一个名为距离的局部变量,可以使用它。

给定一个函数,比如

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
的局部变量。

在行尾有一些分号,应该写入
int sideA=x2-x1;
等。它们也可能是常量;-)顺便说一句,您也可以跳过
dist
,只需写入
返回sqrt(sideCsquared)
直接。行尾有一些分号时,应写入
int sideA=x2-x1;
等。可能它们也是常量;-)顺便说一句,您也可以跳过
dist
直接写入
返回sqrt(sideCsquared);
直接。