求数组逆置(数组与指针实现)

Posted bob-tong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求数组逆置(数组与指针实现)相关的知识,希望对你有一定的参考价值。

数组逆置

  基本思路:

  将a[0]与a[n-1]对换,再将a[1]与a[n-2]对换…直到将a[int(n-1)]与a[int((n-1)/2)-1]对换。

  如图所示:


  使用数组来实现:


  1. //数组实现逆置
    void conver_arr(int c,int a[])
    {
        int low =0;
        int high = c -1;
        for(int i =0; i < c/2; i++)
        {
            if(low < high)
            {
                int temp = a[c - i -1];
               a[c - i -1]= a[i];
                a[i]= temp;
            }
        }
    }

     


  使用指针来实现:

  1. //指针实现逆置
    void conver_point(int c,int*a)
    {
        int*start;
        start = a;
        int*end;
        end= a + c -1;
        while(start <end)
        {
            int*temp =*start;
            *start =*end;
            *end= temp;
            *start++;
            *end--;
        }
    }

     


  其他代码:

  1. //打印输出信息
    void arr_print(int*a)
    {
        for(int i =0; i <10; i++)
        {
            printf("a[%d] = %d\\n", i+1, a[i]);
        }
    }
    int main(void)
    {
        int arr_value[10]={12,34,5,67,3,54,6,31,46,1};
        int len =sizeof(arr_value)/sizeof(arr_value[0]);
        conver_arr(len, arr_value);
        conver_point(len, arr_value);
        arr_print(arr_value);
        return0;
    }

     


  运行结果如下图所示:

 

以上是关于求数组逆置(数组与指针实现)的主要内容,如果未能解决你的问题,请参考以下文章

C语言 利用指针实现求数组元素中的最大值和最小值

单链表逆置

c语言中如何通过二级指针来操作二维数组

利用递归与行列式展开定理求行列式的值(数组指针版)

数据结构题:由逆置数组方法——逆置顺序表L的所有元素

C语言【函数 数组 指针】利用指针求一维数组的数据元素之和