【描述】
给定一组整数,用数组保存整数,实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m个数变为最前面的m个数。
注意,不要用先输出后m个数,再输出前n-m个数的方法实现,也不要用两个数组的方式实现。
要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。
【输入】
第一行包含一个正整数n(n≤100)和一个正整数m(m≤n),n和m以空格间隔。
第二行包含n个正整数,整数以空格间隔。
【输出】
依次输出经过循环移动后数组中元素值,元素值以空格间隔。
【输入示例】
11 4
15 3 7667 84 87 13 67 45 34 45
【输出示例】
67 45 3445 15 3 76 67 84 87 13
【C代码】
---------------
#include<stdio.h>
#defineARRAY_SIZE 100
intmain(void) {
int i, j, n, m, temp;
int array[ARRAY_SIZE];
scanf("%d%d", &n, &m);
for(i = 0; i < n; ++i)
scanf("%d", &array[i]);
for(i = 1; i <= m; ++i) {
temp = array[n - 1];
for(j = 1; j < n; ++j) {
array[n - j] = array[n - j - 1];
}
array[0] = temp;
}
for(i = 0; i < n; ++i)
printf("%d ", array[i]);
return 0;
}