2083 - 【一维数组】数组元素移动(2)
时间限制 : 1 秒
内存限制 : 128 MB
读入N个整数存放在数组中,将每个元素依次后移一个位置,最后一个元素移动到第一个元素的位置。按照这种移动方法,总共移动x次,输出移动后的结果。
题目输入
第一行,一个整数n(n不超过100)
第二行:n个整数,相邻数值之间用一个空格分隔。
第三行:一个整数x(0<x<n)
题目输出
移动x次以后的结果
输入/输出样例
输入格式
10 1 2 3 4 5 6 7 8 9 10 2
输出格式
9 10 1 2 3 4 5 6 7 8
C语言解答
#include <stdio.h> int main() { int i,n,x,a[1001]={0}; scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&x); printf("%d",a[n-x+1]); for (i=n-x+2;i<=n;i++) printf(" %d",a[i]); for (i=1;i<=n-x;i++) printf(" %d",a[i]); printf("\n"); return 0; }
C++解答
#include<iostream> #include<cstdlib> using namespace std; int main() { int n; cin>>n; int a[110]; for(int i=1;i<=n;i++) cin>>a[i]; int t,x; cin>>x; for(int i=1;i<=x;i++) { t=a[n]; for(int j=n;j>=2;j--) a[j]=a[j-1]; a[1]=t; } for(int i=1;i<=n-1;i++) cout<<a[i]<<' '; cout<<a[n]; //system("pause"); return 0; }