2-2-6.c

来自「2005软件工程师考试下午编程题源代码」· C语言 代码 · 共 32 行

C
32
字号
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/

void rcr(int a[], int n, int k){ 
int i,j,t,temp,count;
count = 0;	/*记录移动元素的次数*/
k = k % n;
if(k != 0){ /*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/
i = 0;
while(count < n) {
j = i; t = i;
temp = a[i];	/*备份a[i]的值*/
/* 移动相关元素,直到计算出a[i]应移动到的目标位置*/
while((j = (j-k+n) % n) != i){
a[t] = a[j];
t = j;
count++;
}
a[t] = temp; count++;
i++;
}
}
}
main()
{
	int a[]={1,2,3,4,5,6,7,8},i;
	rcr(a,8,3);
	for(i=0;i<8;i++)
		printf(" %d ",a[i]);

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?