有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]); } }