关闭

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

114人阅读 评论(0) 收藏 举报
分类:
//这是一道经典的面试题
#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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6278次
    • 积分:299
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类