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

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-03 15:27:34

    将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
    看到这个题目,我在想,如果能够把前后两个进行交换即可完成任务。也就是将一个数字拆成两半,前后相互调换。然后前面的指针加一,后面的指针减一。直到走到中间,即可完成。根据这个思路代码如下:

#include <stdio.h>

void print_array(int[], int);
void reverse_array(int[],int);
int main(int argc, int *argv[])
{
    int a[11] = {3,5,7,123,786,16,13,64,97,600,88};
    print_array(a,11);
    
    reverse_array(a,11);

    print_array(a,11);
    system("pause");
    return 0;
}
void print_array(int array[],int n)
{
     int i;
     for (i = 0;i < n; i++)
     {
         printf("%d ",array[i]);
     }
     printf("\n");
     
}

void reverse_array(int array[], int n)
{
     int begin = 0,end = n - 1,mid = n / 2,temp;
     int i;
     for (i = 0; i < mid; i++)
     {
         temp = array[begin];
         array[begin] = array[end];
         array[end] = temp;
         
         begin++;
         end--;
     }
}


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