供参考:
#include <stdio.h>
#define N 20
int main()
{
int a[N], i, n, m, t, * p, * q;
scanf("%d", &n);//输入整数个数
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
p = a;
scanf("%d", &m);//输入移动位数
/***** 首先逆置数组前m个元素 *****/
q = a + m - 1; //尾指针
for (p = a; p <= a + (m - 1) / 2; p++, q--)
t = *p, * p = *q, * q = t;
/***** 逆置余下n-m个元素 *****/
q = a + n - 1; //尾指针
for (p = a + m; p <= a + (n - 1 + m) / 2; p++, q--)
t = *p, * p = *q, * q = t;
/***** 逆置整个数组 *****/
q = a + n - 1; //尾指针
for (p = a; p <= a + (n - 1) / 2; p++, q--)
t = *p, * p = *q, * q = t;
//输出数组
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
while(m--)
{
t=a[0];
for(i=0;i<n-1;i++)
a[i]=a[i+1];
a[i]=t;
}