1482 - 《C语言程序设计》江宝钏主编-习题7-7-循环数组
编写程序,将一维数组中的元素向右循环移动N次。
题目输入
第一行整数n,表示数组大小为n
第二行,n个数,表示数组中的n个元素。
第三行,整数N,表示数组向右移动N次。
题目输出
移动后的数组元素,每个元素后跟空格。
输入/输出样例
题目输入
5 1 2 3 4 5 2
题目输出
4 5 1 2 3
C语言解答
#include <stdio.h> int main(void) { int a[100],i,j,b,x; scanf("%d",&i); for (b=0;b<i;b++) { scanf("%d",&a[b]); } scanf("%d",&j); for (;j>0;j--) { x=a[i-1]; for (b=i-1;b>=0;b--) { a[b]=a[b-1]; } a[0]=x; } for (b=0;b<i;b++) { printf ("%d ",a[b]); } return 0; }
C++解答
#include<iostream> using namespace std; int a[10000]; void move(int a[],int n,int m) { if (m==0) return; int t=a[n]; for (int i=n; i>1; i--) a[i]=a[i-1]; a[1]=t; move(a,n,m-1); } int main() { int n,m; cin>>n; for (int i=1; i<=n; i++) cin>>a[i]; cin>>m; move(a,n,m); //递归 for (int i=1; i<=n; i++) cout<<a[i]<<" "; cout<<endl; return 0; }