#include<stdio.h>intmain(void){int a[8]={3,7,6,9,2,5,8,4};int len =sizeof(a)/sizeof(a[0]);int temp, i, j;for( i =0; i <3;++i ){
temp = a[0];for( j =0; j < len -1;++j ){
a[j]= a[j+1];}
a[j]= temp;}for(int i =0; i < len;++i ){printf("%d ", a[i]);}return0;}
方法二:三次全逆置进行交换
#include<stdio.h>voidMoveElement(int a[],int n);voidprint(int a[],int len);intmain(void){int a[8]={3,2,5,8,4,7,6,9};/* 三次全逆置即可 */MoveElement(a,8);// print(a, 8);MoveElement(a,5);// print(a, 8);MoveElement(a+5,3);print(a,8);return0;}voidprint(int a[],int len){for(int i =0; i < len;++i){printf("%d ", a[i]);}printf("\n");}voidMoveElement(int a[],int n){/* 不管奇数偶数都循环n/2次 */for(int i =0; i < n /2; i++){int temp = a[i];
a[i]= a[n-i-1];
a[n-i-1]= temp;}}
方法三:同方法二(将数组区间全逆置的函数封装)
#include<stdio.h>voidMoveElements(int*,int,int);intmain(void){int a[8]={3,2,5,8,4,7,6,9}, i;MoveElements(a,0,7);MoveElements(a,0,4);MoveElements(a,5,7);for( i =0; i <8;++i ){printf("%d ", a[i]);}printf("\n");return0;}voidMoveElements(int*a,int low,int high){int i,j;for(i = low,j = high; i < j;++i,--j){int t;
t = a[i];
a[i]= a[j];
a[j]= t;}}