c语言200例 051 使用指针实现逆序存放数组元素

要求:使用指针将数组中的元素逆序输出

关键技术:

1.自定义创建了个函数 inverte()用来实现对数组元素的逆序存放

2.自定义函数的形参为个指向数组的指针变量x,初始值指向数组 a 的首元素的地址,x+n是 a[n]元素的地址

3.声明指针变量i、j和 p,i初始值为x,即指向数组首元素地址,j的初始值为 x+n-1,即指向数组最后一个元素的地址,使p指向数组中间元素的地址

4.交换*i与*j的值,即交换a[i]与a[j]的值。移动i和j,使 i 指向数组第二个元素, j 指向倒数第二个元素,继续交换,直到中间值,这样就实现了数组元素的逆序存放

int inverte(int *x, int n)
{
    int *p, temp,  *i,  *j, m = (n - 1) / 2;
    i = x;
    j = x + n - 1;
    p = x + m;
    for (; i <= p; i++, j--)
    {
        temp =  *i;
         *i =  *j;
         *j = temp;
    }
    return 0;
}

运行结果如下

完整代码如下 

#include <stdio.h> 
int inverte(int *x, int n)
{
    int *p, temp,  *i,  *j, m = (n - 1) / 2;
    i = x;
    j = x + n - 1;
    p = x + m;
    for (; i <= p; i++, j--)
    {
        temp =  *i;
         *i =  *j;
         *j = temp;
    }
    return 0;
}

int main()
{
    
    int i, a[10] = 
    {
        1, 2, 3, 4, 5, 6, 7, 8, 9, 0
    };
    printf("初始的数组为:\n");
    for (i = 0; i < 10; i++)
        printf("%d,", a[i]);
    printf("\n");
    inverte(a, 10);
    printf("逆置后的数组为:\n");
    for (i = 0; i < 10; i++)
        printf("%d,", a[i]);
    printf("\n");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值