将数组前k个元素顺移到数组元素尾部,数组元素的值由键盐输入。要求输出原始数组和顺 移后的数组。用c语言
时间: 2024-05-22 17:16:36 浏览: 64
#include <stdio.h>
void shift(int arr[], int n, int k) {
int temp[k];
// 将前k个元素存入临时数组中
for (int i = 0; i < k; i++) {
temp[i] = arr[i];
}
// 将后n-k个元素向前移动k个位置
for (int i = 0; i < n - k; i++) {
arr[i] = arr[i + k];
}
// 将临时数组中的元素放到数组末尾
for (int i = 0; i < k; i++) {
arr[n - k + i] = temp[i];
}
}
int main() {
int n, k;
printf("请输入数组长度n和移动的位置k:");
scanf("%d %d", &n, &k);
int arr[n];
printf("请输入%d个整数作为数组元素:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("原始数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
shift(arr, n, k);
printf("顺移后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
阅读全文