夜与久歌 2022-12-01 22:00 采纳率: 84.6%
浏览 24
已结题

寻帅哥美女回答一下下面这个编程代码

在不改变原始数据的情况下利用指针数组实现N个整数的升序排序,如下图所示:按指针数组元素下标递增顺序访问原始数据时得到升序排序结果。

要求:
(1)编写排序函数Sort,其中查找指向最小值的指针元素下标部分写成函数MinPos,指针交换部分写成函数Swap
(2)主函数定义一维数组和指针数组,并从键盘输入原始数据

  • 写回答

1条回答 默认 最新

  • 不二啊q 2022-12-02 11:01
    关注
    int MinPos(int *p[])
    {
        int min=*p[0],i;
        for (i=0;i<10;i++)
        {
            if(min>*p[i])
            {
                min=*p[i];
            }
        }
        return min;
    }
    
    int Swap(int *p[])
    {
        for (int i=0;i<10;i++) {
            for (int j=0;j<9-i;j++) {
                if(*p[j]>*p[j+1])
                {
                    int *tmp;
                    tmp=p[j];
                    p[j]=p[j+1];
                    p[j+1]=tmp;
                }
            }
        }
        return 0;
    }
    
    int Sort(int *p[])
    {
        Swap(p);
        return 0;
    }
    
    int main()
    {
        int s[10];
        int *p[10];
        int min;
        for (int i=0;i<10;i++)
        {
            scanf("%d",&s[i]);
            p[i]=&s[i];
        }
        min=MinPos(p);
        Sort(p);
        printf("%d\n",min);
        for (int i=0;i<10;i++)
        {
            printf("%d",*p[i]);
        }
        printf("\n");
        for (int i=0;i<10;i++)
        {
            printf("%d",s[i]);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月1日