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

代码客栈 其他问答 1
#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;
}

回复

共1条回复 我来回复
  • 代码港湾
    这个人很懒,什么都没有留下~
    评论

    修改处见注释,供参考:

    #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;
    }
    
    0条评论

发表回复

登录后才能评论