Problem C: C语言习题 整数排序

来源:互联网 发布:阿里云cdn流量包怎么用 编辑:程序博客网 时间:2024/05/12 03:10

Problem C: C语言习题 整数排序


Description

用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。整数和n在主函数中输入。最后在主函数中输出。

Input

n和n个整数

Output

排序后的整数

Sample Input

54 3 2 1 5

Sample Output

1 2 3 4 5

HINT

 主函数已给定如下,提交时不需要包含下述主函数


/* C代码 */


int main()

{

    void sort(int **,int );

    int i,n,data[20],**p,*pstr[20];

    scanf("%d",&n);

    for (i=0; i<n; i++)

        pstr[i]=&data[i];

    for (i=0; i<n; i++)

        scanf("%d",pstr[i]);

    p=pstr;

    sort(p,n);

    for (i=0; i<n; i++)

        printf("%d ",*pstr[i]);

    return 0;

}



/* C++代码 */

int main()

{

    void sort(int **,int );

    int i,n,data[20],**p,*pstr[20];

    cin>>n;

    for (i=0; i<n; i++)

        pstr[i]=&data[i];

    for (i=0; i<n; i++)

        cin>>*pstr[i];

    p=pstr;

    sort(p,n);

    for (i=0; i<n; i++)

        cout<<*pstr[i]<<" ";

    return 0;

}

void sort(int **p,int n){    int i,j,*temp;    for(j=0;j<n-1;j++)        for(i=0;i<n-j;i++)            if(**(p+i)>**(p+i+1))            {temp=*(p+i);            *(p+i)=*(p+i+1);            *(p+i+1)=temp;            }}  int main(){    void sort(int **,int );    int i,n,data[20],**p,*pstr[20];    scanf("%d",&n);    for (i=0; i<n; i++)        pstr[i]=&data[i];    for (i=0; i<n; i++)        scanf("%d",pstr[i]);    p=pstr;    sort(p,n);    for (i=0; i<n; i++)        printf("%d ",*pstr[i]);    return 0;}



0 0
原创粉丝点击