Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538748
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-22 14:27:54

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


阅读(1886) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~