使其前面各数顺序向后移 m 个位置

简介: 【7月更文挑战第4天】使其前面各数顺序向后移 m 个位置。

题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。

程序分析:可以使用一个辅助数组来保存需要移动的元素,然后再将元素按照要求移动到正确的位置。

实例 1

include

// 通过 shiftArray 函数来实现数组元素的移动。
void shiftArray(int arr[], int n, int m) {
int temp[m];

// 保存最后 m 个数到临时数组
for (int i = n - m, j = 0; i < n; i++, j++) {
    temp[j] = arr[i];
}

// 将前面的 n-m 个数向后移动 m 个位置
for (int i = n - m - 1; i >= 0; i--) {
    arr[i + m] = arr[i];
}

// 将临时数组中的数放到最前面
for (int i = 0; i < m; i++) {
    arr[i] = temp[i];
}

}
// 在 main 函数中获取用户输入的数组和要移动的位置,调用s hiftArray 函数,最后输出移动后的数组

int main() {
int n, m;

printf("请输入整数个数 n:");
scanf("%d", &n);

printf("请输入向后移动的位置 m:");
scanf("%d", &m);

int arr[n];

printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}

shiftArray(arr, n, m);

printf("移动后的数组:");
for (int i = 0; i < n; i++) {
    printf("%d ", arr[i]);
}
printf("\n");

return 0;

}

相关文章
|
1月前
|
人工智能
依次后移一个位置
依次后移一个位置。
31 12
|
3月前
|
算法 索引
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
这篇文章介绍了LeetCode第34题"在排序数组中查找元素的第一个和最后一个位置"的解题方法,通过使用双指针法从数组两端向中间同时查找目标值,有效地找到了目标值的首次和最后一次出现的索引位置。
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
|
6月前
|
索引
将数组指定索引位置的元素 移动到 目标索引位置,且不改变其他元素原本的顺序,注意这个不是对调元素位置,是移动某一个元素位置不影响其他元素顺(使用场景:拖拽改变数据的顺序,点击上下左右箭头移动元素顺序)
将数组指定索引位置的元素 移动到 目标索引位置,且不改变其他元素原本的顺序,注意这个不是对调元素位置,是移动某一个元素位置不影响其他元素顺(使用场景:拖拽改变数据的顺序,点击上下左右箭头移动元素顺序)
|
6月前
在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置
|
6月前
|
算法
leetcode-34:在排序数组中查找元素的第一个和最后一个位置
leetcode-34:在排序数组中查找元素的第一个和最后一个位置
33 0
LeetCode-34 在排序数组中查找元素的第一个和最后一个位置
LeetCode-34 在排序数组中查找元素的第一个和最后一个位置
|
算法
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
108 0
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
|
算法 Java Python
【LeetCode】 34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置
96 0
|
算法 前端开发 程序员
调整数组元素顺序
调整数组元素顺序
调整数组元素顺序