C语言习题 n个数逆序

C语言习题 n个数逆序

时间: 1ms        内存:128M

描述:

将n(n<20)个数按输入时顺序的逆序排列,用函数实现。

输入:

n 和 n个整数

输出:

逆序输出,空格分开

示例输入:

10
1 2 3 4 5 6 7 8 9 0

示例输出:

0 9 8 7 6 5 4 3 2 1

提示:

参考答案(内存最优[748]):

#include <stdio.h>
void sort (int *p,int m)              // 将n个数逆序排列函数
{
    int i;
    int temp, *p1,*p2;
    for (i=0; i<m/2; i++)
    {
        p1=p+i;
        p2=p+(m-1-i);
        temp=*p1;
        *p1=*p2;
        *p2=temp;
    }
}

int main()
{
    void sort (int *p,int m);
    int i,n;
    int *p,num[20];
    scanf("%d",&n);
    for (i=0; i<n; i++)
        scanf("%d",&num[i]);
    p=&num[0];
    sort(p,n);
    for (i=0; i<n-1; i++)
        printf("%d ",num[i]);
    printf("%d\n",num[n-1]);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
void sort (int *p,int m)              // 将n个数逆序排列函数
{
    int i;
    int temp, *p1,*p2;
    for (i=0; i<m/2; i++)
    {
        p1=p+i;
        p2=p+(m-1-i);
        temp=*p1;
        *p1=*p2;
        *p2=temp;
    }
}

int main()
{
    void sort (int *p,int m);
    int i,n;
    int *p,num[20];
    cin>>n;
    for (i=0; i<n; i++)
        cin>>num[i];
    p=&num[0];
    sort(p,n);
    for (i=0; i<n-1; i++)
        cout<<num[i]<<" ";
    cout<<num[n-1]<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注