300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言解决循环左移和循环右移

c语言解决循环左移和循环右移

时间:2022-05-16 19:14:00

相关推荐

c语言解决循环左移和循环右移

循环左移:

例:1 2 3 4 5循环左移一位后变成2 3 4 5 1,循环左移两位后变成3 4 5 2 1。

下面用for循环实现:

int i,k,j,temp,a[n]={1,2,3,4,5}; //数组长度为n,所以最后一位的下标为n-1

for(i=0;i<k;i++)

//k为循环次数,这是一个外层循环,进行第一个左移循环后,i++,数组顺序变为2 3 4 5 1,进入内循环后数组的第一位是2,同样将其拿出来赋给一个变量,下面依次进行……

{

temp=a[0]; //将数组第一位的值先赋给一个变量

for(j=0;j<n-1;j++) //内层循环

a[j]=a[j+1]; //将数组中的元素依次前移

a[n-1]=temp; //将之前拿出来的第一位放到数组最后

}

图解:

(图上的数字为执行顺序)

循环右移

例:1 2 3 4 5循环右移一位后变成5 1 2 3 4,循环右移两位后变成4 5 1 2 3。

下面用for循环实现:

int i,j,k,temp,a[n]={1,2,3,4,5};

for(i=0;i<k;i++) //外层循环,k为循环次数

{

temp=a[n-1]; //将数组元素最后一位存到temp变量中

for(j=n-1;j>0;j--)

a[j]=a[j-1];

a[0]=temp; //将temp中的元素放到数组第一位

}

图解:

(图上的数字为执行顺序)

说明:循环左移和循环右移其实就是数组元素的逆置,这里简单说明一下:先将数组元素{1,2,3,4,5}中的前两位逆置变为{2,1,3,4,5},再将后三位逆置变为{2,1,5,4,3},再将整体逆置变为{3,4,5,2,1}。下一篇文章过几天我会详细写一下逆置有关的算法。

这是小南第一次发布csdn,一方面是加强自己的学习,相当于做了笔记,另一方面是希望我写的这些东西能尽可能帮助到不懂的同学。虽然我好菜,但。。还是继续努力吧呜呜呜

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。