我是靠谱客的博主 魁梧山水,这篇文章主要介绍131-对数字数组进行右循环,现在分享给大家,希望可以做个参考。

数字数组:1234567
右循环3位
输出:5671234

#include<stdio.h>
void Reverse(int* arr, int a, int b)//逆序 
{
	for(; a< b; a++, b--)
	{
		int tmp = arr[b];
		arr[b] = arr[a];
		arr[a] = tmp;
	}
}

void RightLoop(int* arr, int n, int k)
{
	k %= n;//如果k大于n,可以减少次数
	Reverse(arr, 0, n - k - 1);//前半部分逆置
	Reverse(arr, n- k, n - 1);//后半部分逆置
	Reverse(arr, 0, n - 1);//全部逆置
}

int main()
{
	int arr[]={1,2,3,4,5,6,7};
	RightLoop(arr,sizeof(arr)/sizeof(arr[0]),3);
	for(int i=0;i<sizeof(arr)/sizeof(arr[0]);++i)
	{
		printf("%d",arr[i]);
	}
	return 0;
}

运行结果如下
在这里插入图片描述

做题思路

1234567右循环3位
先将1234逆序 4321567
然后将567逆序 4321765
最后把4321765逆序得出:5671234

最后

以上就是魁梧山水最近收集整理的关于131-对数字数组进行右循环的全部内容,更多相关131-对数字数组进行右循环内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(130)

评论列表共有 0 条评论

立即
投稿
返回
顶部