设计一个算法,将一维数组A(下标从1开始)中的元素循环右移k位,要求只用一个元素大小的附加存储空间。给出算法的时间复杂度。

代码

#include<stdio.h>
#include<stdlib.h>
#define n 10
int main()
{ 
	int a[n] = { 0,1,2,3,4,5,6,7,8,9 };
	int k, t=0,i,j,m;
	printf("请输入循环右移几位\n");
	scanf_s("%d", &k);
	for (j=0;j<k;j++)
	{
		t = a[n - 1];
		for (i = n - 1; i > 1; i--)
			a[i] = a[i - 1];
		a[1] = t;
	}

	for (m = 1; m < n; m++)
	{
		printf("%d", a[m]);
	}
	system("pause");
	return 0;
}

运行截图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42837885/article/details/83867563