求数组逆置(数组与指针实现)
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]对换。
如图所示:
使用数组来实现:
-
//数组实现逆置 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; } } }
使用指针来实现:
-
//指针实现逆置 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--; } }
其他代码:
-
//打印输出信息 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; }
运行结果如下图所示:
以上是关于求数组逆置(数组与指针实现)的主要内容,如果未能解决你的问题,请参考以下文章