有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见
图8.43。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。要求用指针方法处理。
#include <stdio.h>
int main()
{
int a[20], b[20];
int i, n, m;
printf("整数的个数n:");
scanf("%d", &n);
printf("输入%d个数:", n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("输入偏移量m:");
scanf("%d", &m);
for(i = 0; i <= n - m - 1; i++) //将数组的前n-m个数(下标0到n-m-1)后移m位存到b数组
b[i + m] = a[i];
for (i = 0; i <= m - 1; i++) //将数组的后m个数(下标n-m到n-1)前移n-m位存到b数组
b[i] = a[i + n - m];
for (i = 0; i < n; i++)
{
printf("%d ", b[i]);
}
}