解题思路:
注意事项:
参考代码:
#include<iostream>
using namespace std;
int main()
{
int arr[100] = {0};//暂时存储数据
int n,m;
cin >> n;
for(int i = 0; i < n;i++) cin >> arr[i];//赋值
cin >> m;//移动的位置m
//实现方法: 取一个暂时存储数据的数组,存储原数组的后m个数据
int temp[m] = {0};
int m_s = m;
for(int i = n-m ; i < n ; i++)
{
temp[m_s--] = arr[i];// 10 - 2 = 8 ,arr[8] = arr[2--]
//反向赋值,待会重新赋值要从尾赋值
}
for(int i = n - m -1 ; i >= 0; i--)//原数组覆盖后m个数据,从尾部开始赋值
{
arr[i + m] = arr[i];// arr[8 + 2 -1 -1] = arr[8-1] // arr[7]
}
//对原数组前m位赋值:
for(int i = 0 ; i < m;i++)
{
arr[i] = temp[m-i];
}
//输出:
for(int i = 0; i < 10 ; i++) cout << arr[i] << " " ;
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复