#include<iostream>
using namespace std;
int main()
{
void move(int*,int,int);
int number[20],n,m,i;
cout<<"请输入共有几个元素";
cin>>n;
cout<<"输入"<<n<<"个数"<<endl;
for(i=0;i<n;i++)
cin>>number[i];
cout<<"请输入向后移多少个位置";
cin>>m;
move(number,n,m);
cout<<"移动的元素是:"<<endl;
for(i=0;i<n;i++)
cout<<number[i]<<" ";
cout<<endl;
return 0;
}
void move(int *array,int n,int m)
{
int *p,array_end;
array_end=*(array+n-1);//把最后一个元素赋给array_end
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;//把最后一个元素给第1个元素
m--;
if (m>0)
move(array,n,m);//递归调用,当循环次数m减至为0时,停止调用
}
追问可以改一下吗 ,win-tc打不开iostream
追答我手头上没有TC,但算法是通用的。