输入一组数字,用指针函数进行排序,输入输出都在主函数。希望给个更改的建议

#include <stdio.h>

int A(int* n, int* p);
int main()
{
    int i,n;
    int a[100];
    int p = a[100];
    printf("请输入n的个数\n");
    scanf("%d", &n);
    printf("请输入这几个数\n");
    for (i = 0; i < n; i++)
    {
        scanf("%d", & a[i]);
    }
    A(&n, &p);
    for (i = 0; i < n; i++)
    printf("%d ", a[i]);
    return 0;
}
int A(int *n, int *p)
{
    int i,j,t;
    for(i=0;i<*n;i++)
        for (j = i + 1; j < *n; j++)
        {
            if (*(p+i)>*(p+j))
            {
                t = *(p + i), * (p + i) = *(p + j), * (p + j) = t;
            }
        }
    return *p;
}

修改处见注释,供参考:

#include<stdio.h>
void A(int n, int* p);//int A(int* n, int* p);
int main()
{
    int i,n;
    int a[100];
    int* p = a;              // int p = a[100];
    printf("请输入n的个数\n");
    scanf("%d", &n);
    printf("请输入这几个数\n");
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);  //scanf("%d", & a[i]);
    }
    A(n, p);
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
    return 0;
}
void A(int n, int *p)    //int A(int *n, int *p)
{
    int i,j,t;
    for(i=0;i < n - 1;i++)    //for(i=0;i<*n;i++)
        for (j = i + 1; j < n; j++)   //for (j = i + 1; j < *n; j++)
        {
            if (*(p+i)>*(p+j))
            {
                t = *(p + i), * (p + i) = *(p + j), * (p + j) = t;
            }
        }
                            //return *p;
}

A(&n, &p+1);