#include void rightRotate(int arr[], int n, int m) { int temp[n], i; // 计算实际移动的位置 m = m % n; // 将数组最后m个元素移到临时数组的前面 for (i = 0; i < m; i++) { temp[i] = arr[n - m + i]; } // 将数组前n-m个元素移动到临时数组的后面 for (i = 0; i < n - m; i++) { temp[m + i] = arr[i]; } // 将临时数组的内容复制回原数组 for (i = 0; i < n; i++) { arr[i] = temp[i]; } } int main() { int n, m; // 读取N和M scanf("%d %d", &n, &m); int arr[n], i; // 读取N个整数 for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 右移M位 rightRotate(arr, n, m); // 输出结果 for (i = 0; i < n; i++) { if (i > 0) { printf(" "); } printf("%d", arr[i]); } printf("\n"); return 0; }