#include <stdio.h>
#define N 10
int main(void){
int arr[N]={1,2,3,4,5,6,7,8,9,10};
int *p,m;
int t,k;
scanf("%d",&m);
while(m>=N || m<0){//注意m值范围,做个检查
printf("输入错误!\n");
scanf("%d",&m);
}
k=1;
while(k<=m){//数组整体向右移m次。每移一次,把末尾的那个数
//放回数组首位
p=arr+N-1; //记下数组末尾的数
t=*p;
while(p>arr){ //从数组末尾开始,全体成员向右移一位
*p=*(p-1);
--p;
}
*p=t;//移完后,数组首位会空出来,把末尾数回填到首位
++k; //上面右移操作做m次,用k做计数器,k==m跳出循环
}
for(p=arr;p!=arr+N;p++)//输出数组,验证结果
printf("%d ", *p);
return 0;
}
温馨提示:答案为网友推荐,仅供参考