一、可借鉴的
题目中没有说m一定大于n,因此需要做处理
m = m%n;
二、整体代码
#include<cstdio>
void getprint(int a[],int n)
{
for (int i = 0;i < n;i++)
{
printf("%d",a[i]);
if(i!=n-1) printf(" ");
}
printf("\n");
}
void reverse(int a[],int min ,int max)
{
for (int i = 0;i<(max-min+1)/2;i++)
{
int temp = a[min + i];
a[min + i] = a[max - i];
a[max - i] = temp;
}
}
int main(){
int n,m;
int temp;
int l = 0;
scanf("%d %d",&n,&m);
m = m%n;
int a[100];
for (int i = 0;i < n;i++)
{
scanf("%d",&a[i]);
}
if(m == 0)
{
getprint(a,n);
return 0;
}
else{
reverse(a,0,n-m-1);
//getprint(a,n);
reverse(a,n-m,n-1);
//getprint(a,n);
//全部交换
reverse(a,0,n-1);
getprint(a,n);
return 0;
}
}
