黑马程序员技术交流社区

标题: 逆序一个数组的代码实现 [打印本页]

作者: hanxujie    时间: 2015-6-14 18:13
标题: 逆序一个数组的代码实现

这个很重要,以后可能常考,现总结一下,有备无患!

#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;
}



作者: 白0702    时间: 2015-6-14 21:02
楼主总结的很好,学习了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2