您现在的位置是:首页 > 正文

数组左移一位,右移一位,左移k位,右移k位

2024-04-01 01:18:57阅读 9
void Print_Array(int *br,const int n)	//输出打印数组
{
	for(int i=0;i<n;i++)
	{
		printf("%d    ",*(br+i));
	}
	printf("\n");
}

void Right_Move_Array(int *br,const int n)  //右移一位
{
	assert(br != NULL && n>0);
	int temp=*(br + n-1);		//把数组最后一位元素给temp
	for(int i=n-1;i>0;i--)
	{
		*(br+i)=*(br+i-1);		//循环把数组第i-1位元素给第i位元素
	}
	*br=temp;				//把temp里面的值给数组第一位元素
}

void Left_Move_Array(int *br,const int n)
{
	assert(br != NULL && n>0);
	int temp=*br;
	for(int i=1;i<n;i++)
	{
		*(br+i-1)=*(br+i);
	}
	*(br+n-1)=temp;
}

void Right_Move_Array_k(int *br,const int n,int k)
{
	
	assert(br != NULL && n != 0 );
	if(k>0)
	{
		k = k % n;
		while (k != 0)
		{
			Right_Move_Array(br,n);
			k--;
		}
	}
	else
	{
		k = -k;
		k=k % n;
		while (k != 0)
		{
			Left_Move_Array(br,n);
			k++;
		}
	}
}

void Left_Move_Array_k(int *br,const int n,int k)
{
	Right_Move_Array_k(br,n,-k);
}


int main()
{
	int ar[ ]={1,2,3,4,5,6,7,8,9,10};
	int n=sizeof(ar)/sizeof(ar[0]);
	Print_Array(ar,n);

	Right_Move_Array(ar,n);
	Print_Array(ar,n);

	Left_Move_Array(ar,n);
	Print_Array(ar,n);

	Left_Move_Array_k(ar,n,3);
	Print_Array(ar,n);

	Right_Move_Array_k(ar,n,3);
	Print_Array(ar,n);

	return 0;
}

 

网站文章

  • 如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题

    如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题

    最近在用Camtasia9 做视频录制的时候,需要导入第三方的字幕文件(SRT文件),在操作无误的情况下,字幕可以顺利导入软件中,但字幕出现了乱码的现象。 ...

    2024-04-01 01:18:49
  • 端口号占用快速解决方法

    端口号占用快速解决方法

    有的时候我们的电脑中突然软件卡死、然后重启的时候。之前运行的项目在端口没杀死就会被占用掉,无法启动。这个时候我们就需要找出这个端口,并杀死它。

    2024-04-01 01:18:22
  • macos端串口调试推荐 serial直装激活 for mac

    macos端串口调试推荐 serial直装激活 for mac

    Serial识别您连接的设备并按名称和类型列出它们,这样您就不必破译其神秘的BSD / dev路径。更好的是,Serial允许您以对您有意义的方式重命名您的设备。没有更简单的方法可以将Mac直接连接到路由器,防火墙,PBX系统,服务器等。

    2024-04-01 01:18:15
  • Arrays类

    Arrays类

    Arrays类

    2024-04-01 01:18:10
  • 带你领略 Kotlin 中的 “when”魔法

    提到 when,大家都会联想到 Java 中的 switch,然而在 kotlin 中,when 显然比 Java 中的 switch 要强大得多。首先,我们先来看看 when 的特点: 它可以作为表达式使用 使用更加安全 强大灵活的分支结构 可以不带参数 接下来,我来带大家逐步领略这些特点。以下面这段 Java 功能代码为例: switch(animal) { case EAGLE:...

    2024-04-01 01:18:01
  • MySQL进阶——存储引擎

    MySQL进阶——存储引擎

    (5) InnoDB被用在众多需要高性能的大型数据库站点上,InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以...

    2024-04-01 01:17:36
  • 常用yum源 epel-release

    个人经验:epel 这个是很常用得东西,建议给系统装一下,比如 python3, zabbix 都需要用到 epel ,装epel 很easy,只需要执行下面一条命令即可:yum install -y epel-release...

    2024-04-01 01:17:29
  • java list 和数组区别_java list和数组的区别

    java list 和数组区别_java list和数组的区别

    展开全部List和ArrayList的区别在于:1、在编程语言中ArrayList类是.Net Framework提供的用于数据存储和检索的专用类。List 类可以简单视之为双向62616964757...

    2024-04-01 01:17:22
  • WPS批量设置及批量打印文档

    WPS批量设置及批量打印文档

    2024-04-01 01:16:58
  • Windows下jmap命令报错问题

    最近换了笔记本,新的工作环境下jmap命令居然在报错,而jps、jstat、jinfo、jstack都能正常使用,所以初步排除进程号的问题。Attaching to core 17536 from executable heap, please wait...Error attaching to core file: Windbg Error: OpenDumpFile fai...

    2024-04-01 01:16:50