将一个数组中的值按逆序重新存放。例如:原来顺序为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--; } }
|
阅读(5467) | 评论(0) | 转发(0) |