编写程序,用同一个函数名实现n个数据的升序排序用重载函数实现。

我写的代码,但是运行 输出的数字 不是我输入的数字,请大神们帮我看看我那里写错了
#include//建立头文件
using namespace std;//开辟新的空间
int pl(int *p,int n)//pl函数的原型声名 定义为整型 定义了指针
{
for(int i=0;i {
for(int j=i;j {
if(p[i]>p[j])
{
int x; //对X进行定义为整型
x=p[j];
p[j]=p[i];
p[i]=x;
}
}
}
for(int x=0;x cout return 0;
}
char pl(char *p,int n)
{
for(int i=0;i {
for(int j=i;j {
if(p[i]>p[j])
{
char x;
x=p[j];
p[j]=p[i];
p[i]=x;
}
}
}
for(int x=0;x cout return 0;
}
float pl(float *p,int n)
{
for(int i=0;i {
for(int j=i;j {
if(p[i]>p[j])
{
float x;
x=p[j];
p[j]=p[i];
p[i]=x;
}
}
}
for(int x=0;x cout return 0;
}
int main()
{
int pl(int *p,int n);
char pl(char *p,int n);
float pl(float *p,int n);
int a,n;
cout cin>>a;
cout<<"请输入你需要比较的个数:"< cin>>n;
cout<<"请输入"< if(a==1)
{
int *p=new int[n];//数组的类型
for(int i=0;i cin>>p[n];
pl(p,n);
}
if(a==2)
{
char *p=new char[n];
for(double i=0;i cin>>p[n];
pl(p,n);
}
if(a==3)
{
float *p=new float[n];
for(float i=0;i cin>>p[n];
pl(p,n);
}
return 0;
}

 for(int i=0;i<n;i++)
cin>>p[n]; //不是n是i

1.cin>>p[n];改成cin>>p[i]
2.for (double i = 0; i<n; i++)改成for (int i = 0; i<n; i++)

 #include<iostream>//建立头文件
using namespace std;//开辟新的空间
int pl(int *p, int n)//pl函数的原型声名 定义为整型  定义了指针
{
    for (int i = 0; i<n; i++)
    {
        for (int j = i; j<n; j++)
        {
            if (p[i]>p[j])
            {
                int x; //对X进行定义为整型
                x = p[j];
                p[j] = p[i];
                p[i] = x;
            }
        }
    }
    for (int x = 0; x<n; x++)
        cout << p[x] << " ";//升序依次输出X
    return 0;
}
char pl(char *p, int n)
{
    for (int i = 0; i<n; i++)
    {
        for (int j = i; j<n; j++)
        {
            if (p[i]>p[j])
            {
                char x;
                x = p[j];
                p[j] = p[i];
                p[i] = x;
            }
        }
    }
    for (int x = 0; x<n; x++)
        cout << p[x] << " ";
    return 0;
}
float pl(float *p, int n)
{
    for (int i = 0; i<n; i++)
    {
        for (int j = i; j<n; j++)
        {
            if (p[i]>p[j])
            {
                float x;
                x = p[j];
                p[j] = p[i];
                p[i] = x;
            }
        }
    }
    for (int x = 0; x<n; x++)
        cout << p[x] << " ";
    return 0;
}
int main()
{
    int pl(int *p, int n);
    char pl(char *p, int n);
    float pl(float *p, int n);
    int a, n;
    cout << "输入你要比较的函数类型:" << endl << "1整形\n" << "2字符型\n" << "3单精度\n" << endl << "输入编号" << endl;
    cin >> a;
    cout << "请输入你需要比较的个数:" << endl;
    cin >> n;
    cout << "请输入" << n << "个数,用空格分开\n";
    if (a == 1)
    {
        int *p = new int[n];//数组的类型
        for (int i = 0; i<n; i++)
            cin >> p[i];
        pl(p, n);
    }
    if (a == 2)
    {
        char *p = new char[n];
        for (int i = 0; i<n; i++)
            cin >> p[i];
        pl(p, n);
    }
    if (a == 3)
    {
        float *p = new float[n];
        for (int i = 0; i<n; i++)
            cin >> p[i];
        pl(p, n);
    }
    return 0;
}