坑点
应注意到m只是大于0而已,没有上限,可能比n大,所以采用取余的方法
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
int a[100],b[100],n,m,k=0;
cin>>n>>m;
m%=n;
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
for (int i=n-m;i<n;i++)
b[k++]=a[i];
for (int i=0;i<n-m;i++)
b[k++]=a[i];
for (int i=0;i<n;i++)
{
printf("%d",b[i]);
if (i!=n-1)
printf(" ");
}
return 0;
}
本文深入探讨了一种数组旋转算法的实现细节,通过取余数的方法处理数组元素的重新排列问题,确保了即使当旋转次数大于数组长度时也能正确操作。代码示例清晰展示了如何将数组分为两部分并进行重组,最终实现高效且简洁的数组旋转。

被折叠的 条评论
为什么被折叠?



