我的思路:
1、利用for循环,数组元素右移几位就循环几次
2、在for循环中:利用辅助变量t=数组a[n-1],然后将数组元素一次右移一位,再将a[0]=t;
代码:
3、(借鉴)参考其他代码改善一处:for循环时,i<m可以改为i<m%n(因为m可能比n大)
#include<stdio.h>
int main (){
int n,m; // n为数组元素个数,m为右移位数
scanf("%d",&n);
scanf("%d",&m);
int a[n];
for(int i=0;i<n;i++){ //输入数组元素
scanf("%d",&a[i]);
}
for(int i=0;i<m;i++){ //一次for循环代表数组元素右移一位,m代表右移m位
int t=a[n-1];
for(int j=n;j>1;j--){
a[j-1]=a[j-2];
}
a[0]=t;
}
printf("%d",a[0]); //输出
for(int i=1;i<n;i++){
printf(" %d",a[i]);
}
return 0;
}