数组练习2

简介: 数组练习2。

题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。
程序分析:可以使用一个辅助数组来保存需要移动的元素,然后再将元素按照要求移动到正确的位置。

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月前
|
存储 索引
数组的特点
数组是一种线性数据结构,用于存储固定大小的顺序集合。每个元素在数组中都有一个唯一的索引,可以快速访问和修改。数组支持随机访问,但插入和删除操作较慢,因为需要移动后续元素。适用于需要频繁读取数据的场景。
|
5月前
数组(2)
数组(2)
31 1
|
5月前
|
存储 算法 编译器
数组(1)
数组(1)
33 0
|
6月前
|
存储 C++ 索引
C++数组
C++数组
54 0
|
6月前
|
存储 C++ 索引
c++数组
c++数组
39 1
|
6月前
|
存储 人工智能 算法
4.为何数组下表从0开始
4.为何数组下表从0开始
63 1
|
6月前
|
存储 程序员 C++
c++数组详细介绍(一)
前言 深入理解C++的数组和字符串是成为熟练C++程序员的重要一步。本文将探索C++中数组和字符串的基本概念,从基础到进阶,包括数组的声明、初始化、访问和多维数组的操作,以及字符串类的使用和与字符数组的转换。还将涉及异常处理、动态内存分配、STL中的其他容器、常用字符串操作。
115 0
|
6月前
|
存储 C++
C++-数组总结
C++-数组总结
47 0
|
11月前
|
存储 编译器 程序员
数组详解
数组详解
67 0
|
算法
三 数组
三 数组
56 0