Description
利用数组实现循环右移,输入数组长度m和循环右移的位数n,输入数组元素,输出循环右移后的数组。
Input
输入两行,第一行输入m和n的值,第二行输入数组的m个元素。
Output
输出仅一行,输出循环右移后的数组,各元素以空格分开。
Sample Input
5 3
6 3 4 5
Sample Output
4 5 1 6 3
我们用如下的代码解决此问题
#include <stdio.h>
int main()
{
int m, n, i, a[1000];
scanf("%d %d", &m, &n);
if(n > m)
n %= m;
for(i = 0; i < m; i++)
if(i + n < m)
scanf("%d", &a[i + n]);
//从第n个开始输入, 是不是很邪恶^-^;
else
scanf("%d", &a[i - m + n]);
for(i = 0; i < m; i++)
if(i == 0)
printf("%d", a[i]);
else
printf(" %d", a[i]);
return 0;
}
代码是思维,不是看写的有多长!