您的位置:首页 > 编程语言 > C语言/C++

C语言 逆序一个数组的代码实现

2015-07-08 21:38 351 查看
//这是一道经典的面试题

#include <stdio.h>

/**

*  逆序数组用for

*

*  @param a   数组名

*  @param len 数组长度

*/

void nixuArr(int a[],int len){

    //定义一个指数组指针

    int *p=a;

    //定义下标并且实现转换

    for (int i=0,j=len-1; i<j; i++,j--) {

        int temp;

        temp =*(p+i);

        *(p+i)=*(p+j);

        *(p+j)=temp;

    }

}

/**

*  逆序数组用wile

*

*  @param a   数组名

*  @param len 数组长度

*/

void nixuArr2(int a[],int len){

    //定义一个数组指针

    int *p=a;

    //定义下标

    int j=len-1;

    int i=0;

    while (i<j) {

        //实现下标转换

        int temp;

        temp = *(p+i);

        *(p+i)=*(p+j);

        *(p+j)=temp;

        i++,j--;

    }

}

int main(int argc, const char * argv[]) {

    // 输入一个数组

    int arr[10]={1,2,3,4,5,6,7,8,9,10};

    //带入函数

    nixuArr(arr,10);

    //遍历数组并且打印

    for (int i=0; i<10; i++) {

        printf("%d\t",arr);

    }

        return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: