【C语言】之''指针作为参数实现数组的排序''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

键盘输入一个整形数组,第一行输入数组的长度n(n<=100),第二行输入n个整数作为数组的元素。实现函数init(int p,n)实现数组的键盘初始化,使用sort(int p,n)对数组进行升序排列,使用函数print(*p,n)数组数组元素。

【输入形式】

第一行输入数组的长度n,第二行输入n个整数作为数组的元素

【输出形式】

输出排序后的数组

【样例输入】

4

23 34 2 5

【样例输出】

2 5 23 34

【参考答案】

#include <stdio.h>
void main()
{
  void sort(int  x[ ], int n);
  void init(int  *x, int n);
  void print(int  *x, int n);
  int a[100];
  int n;
  scanf("%d",&n);
  init(a,n);
  sort(a,n);
  print(a,n);
}
void init(int  *x, int n)
{
    for(int i=0;i<n;i++)
       {
           scanf("%d",x++);
       }
}
void sort(int  *x, int n)
{ 

int i,j,k,t;
   for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(*(x+j)<*(x+k))
                k=j;
        }
        t=*(x+i);
        *(x+i)=*(x+k);
        *(x+k)=t;
    }
}
void print(int  *x, int n)
{ 
for(int i=0;i<n;i++)
    {
        printf("%d ",*x++);
    }
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容