将n个数按输入时的逆序排列,用函数实现。
使用三个指针,一个指向第一个元素,一个指向最后一个元素,最后一个指向中间的元素,将第一个和最后一个进行互换。然后指向开始的指针前进一个,指向最后一个的后退一个。直到原来指向开始的元素的指针大于或者等于中间指针时,停止元素的交换。代码如下:
#include <stdio.h> #define N 300
void reverse(int *,int); int main(int argc,char *argv[]) { int arr[N],i,n,*p; printf("what input number count:"); scanf("%d",&n); for (p = arr,i = 0; i < n;i++,p++) { scanf("%d",p); } p = arr; printf("the result is :\n"); reverse(p,i); for (p = arr; p < arr + n; p++) { printf("%5d",*p); } printf("\n"); system("pause"); return 0; }
void reverse(int *arr,int n) { int *begin,*end,*mid,temp; begin = arr; end = arr + n - 1; mid = arr + n / 2; while (begin < mid) { temp = *begin; *begin++ = *end; *end-- = temp; }; }
|
阅读(826) | 评论(0) | 转发(0) |