给定一个n长的数列,有m次操作,第i次操作表示将整个数列循环移动mi位,询问每次操作结束后的开头k个数字(用c语言)
时间: 2024-06-14 17:05:50 浏览: 88
数组循环移动k位- C++
以下是用C语言实现给定一个n长的数列,有m次操作,第i次操作表示将整个数列循环移动mi位,询问每次操作结束后的开头k个数字的代码示例:
```c
#include <stdio.h>
void rotateArray(int arr[], int n, int m) {
int temp;
while (m < 0) {
m += n;
}
while (m > 0) {
temp = arr[0];
for (int i = 0; i < n - 1; i++) {
arr[i] = arr[i + 1];
}
arr[n - 1] = temp;
m--;
}
}
int main() {
int n, m, k;
scanf("%d %d %d", &n, &m, &k);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < m; i++) {
int mi;
scanf("%d", &mi);
rotateArray(arr, n, mi);
for (int j = 0; j < k; j++) {
printf("%d ", arr[j]);
}
printf("\n");
}
return 0;
}
```
阅读全文