将数组循环右移x个单位。
例如将{1,2,3,4,5,6,7}右移3个单位变成{5,6,7,1,2,3,4}
#include <stdio.h>
int main()
{
int n, x, i, j, a[100], b[100];
puts("输入数组元素个数");
scanf("%d", &n);
puts("输入数组元素");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
puts("输入向右移动次数");
scanf("%d", &x);
for (i = 0, j = n - x; i < x; i++,j++)
b[i] = a[j]; //将a[]后x个元素存放到b[]前x个单位
for (i = x, j = 0; i < n; i++, j++)
b[i] = a[j]; //将a[]之前剩余的元素存放到b[x]之后的单位
puts("移动后的数组为");
for (i = 0; i < n; i++)
printf("%d ", b[i]);
return 0;
}
将数组循环左移x个单位。
例如将{1,2,3,4,5,6,7}左移3个单位变成{4,5,6,7,1,2,3}
#include <stdio.h>
int main()
{
int n, x, i, j, a[100];
puts("输入数组元素个数");
scanf("%d", &n);
puts("输入数组元素");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
puts("输入向左移动次数");
scanf("%d", &x);
for (i = 0; i < x; i++) { //循环x次
int t = a[0]; //储存数组第一个元素
for (j = 0; j < n-1; j++) //将前n-1个元素向前移动一个单位
a[j] = a[j+1];
a[n - 1] = t; //最后一个元素为之前储存的第一个元素
}
puts("移动后的数组为");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}