将一个数组旋转多次。
将一个数组旋转三次后,位置如图
#include <stdio.h>
//旋转数组
void totatear(int ar[], int n, int k)
{
int temp;
k %= n; //旋转13次等于旋转3次 ,旋转200次等于不旋转
for (int i = 0; i < k; i++) //k表示旋转次数(外层循环)
{
temp = ar[n-1]; //先保存最后一个数
for(int j = n - 1; j > 0; j--)
{
ar[j] = ar[j - 1]; //移动数据
}
ar[0] = temp;
}
}
int main()
{
int ar[] = { 1,2,3,4,5,6,7,8,9 };
int n = sizeof(ar) / sizeof(ar[0]);
totatear(ar, n, 13);
for (int i = 0; i < n; i++)
printf("%d ",ar[i]);
}