C++结构、数组编程问题,求帮改

代码求帮改,最好能指出问题是什么

#include 
double GetDis();
double GetAvg();
struct PT {
    double x;
    double y;
    double z;
};
int main()
{
    using namespace std;
    PT p1,p2;
    cout << "please input two point( , , )and( , , )";
    cin >> p1.x >>p1.y>>p1.z>> p2.x>>p2.y>>p2.z;
    double distance = GetDis(p1, p2);
    cout << "The distance is " << distance << endl;
    const int sum = 3;
    double pX[sum];
    cout << "now input 3 numbers:";
    cin >> pX[0] >> pX[1] >> pX[2]  ;
    double average = GetAvg(pX, sum);
    cout << "The average is " << average;
}
double GetDis(PT p1  ,PT p2 ) {
    double sqare = (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z);
    double s = sqrt(sqare);
    return s;
}

double GetAvg(double* pX, int sum) {
    double aver = (pX[0] + pX[1] + pX[2]) / sum;
    return aver;
}

上面申明的函数没有参数,下面函数体又有参数了

#include <iostream>
using namespace std;
double GetDis(PT p1  ,PT p2 );
double GetAvg(double* pX, int sum);
typedef struct _PT {
    double x;
    double y;
    double z;
}PT;
int main()
{
    PT p1,p2;
    cout << "please input two point( , , )and( , , )";
    cin >> p1.x >>p1.y>>p1.z>> p2.x>>p2.y>>p2.z;
    double distance = GetDis(p1, p2);
    cout << "The distance is " << distance << endl;
    const int sum = 3;
    double pX[sum];
    cout << "now input 3 numbers:";
    cin >> pX[0] >> pX[1] >> pX[2]  ;
    double average = GetAvg(pX, sum);
    cout << "The average is " << average;
}
double GetDis(PT p1  ,PT p2 ) {
    double sqare = (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)+(p1.z-p2.z)*(p1.z-p2.z);
    double s = sqrt(sqare);
    return s;
}
double GetAvg(double* pX, int sum) {
    double aver = (pX[0] + pX[1] + pX[2]) / sum;
    return aver;
}

局部定义的数组没有初始化,会被赋值随机值