编写程序,将一维数组中的元素向右循环移动N次。 【输入形式】 第一行整数n,表示数组大小为n 第二行,n个数,表示数组中的n个元素。 第三行,整数N,表示数组向右移动N次。c语言
时间: 2024-05-30 08:12:51 浏览: 107
代码如下:
#include <stdio.h>
void rightShift(int arr[], int n, int N) {
// 先将数组翻转
for (int i = 0, j = n - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 翻转前N个数
for (int i = 0, j = N - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 翻转剩余的数
for (int i = N, j = n - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int main() {
int n, N;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
scanf("%d", &N);
rightShift(arr, n, N);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
阅读全文