概述
数字数组: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-对数字数组进行右循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复