【问题描述】
编写程序,将一个数组中的数循环左移。注意:要让数组元素的值真正发生改变,而不是通过调整输出顺序实现。
【输入形式】
输入分2行:第一行为n的值,第二行为n个数。
【输出形式】
循环左移以后的n个数
【样例输入】
5
1 5 3 2 0
【样例输出】
5 3 2 0 1
【样例说明】
输入完成后,数组中保存的数列是1、5、3、2、0,经过循环左移操作后,数组中的数列变为:5、3、2、0、1
解析
很简单的一道题目,没什么好解析的。
我仅仅做一个拓展 补充说明。
大家之前交换两个变量a和b是不是这样子的:
t=a;
a=b;
b=t;
但其实,C++提供了一个交换函数给我们:swap
具体用法为:
swap(a,b),交换a和b的数值。
#include<algorithm>//有的C++编译器需要调用这个头文件
...
swap(a,b);
不多说,上代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10002;
int a[N],n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
swap(a[1],a[n]);
for(int i=1;i<n-1;i++) swap(a[i],a[i+1]);
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
}