首页 > 代码库 > 关于固定长度数组中以元素为单位进行的移位操作
关于固定长度数组中以元素为单位进行的移位操作
例如,数组: int array[5] = {1,2,3,4,5};整体往后循环移1个单元的元素。
最开始代码如下。
/**** @author:hushunfeng** */#include<stdio.h>void main() { int array[5] = {1,2,3,4,5}; int i; for(i = 0; i < 5 ; i++) { array[i+1] = array[i]; } for(i=0;i<5;i++) { printf("%d\n",array[i]); } }
结果:1 1 1 1 1
一开始将1移到下一位后,下一位内的内容已经变成1,那么再往下移,就会连续输出1
改进后的初步代码
/**** @author:hushunfeng** */#include<stdio.h>void main() { int array[5] = {1,2,3,4,5}; int i; for(i = 3; i >=-1 ; i--) { if(i==-1) array[i+1] = array[i+5]; else array[i+1] = array[i]; } for(i=0;i<5;i++) { printf("%d\n",array[i]); } }
结果:4 1 2 3 4 最后一位还存在问题 说明没有达到循环的效果。
正确代码:
*//**** @author:hushunfeng** */#include<stdio.h>void main() { int array[5] = {1,2,3,4,5}; int temp; int index; int i; temp = array[4]; for(index=3;index>=0;index--) { array[index+1] = array[index]; } array[0] = temp; for(i=0;i<5;i++) { printf("%d\n",array[i]); }}
结果: 5 1 2 3 4
如果要移动多位,那么可以重复操作上述操作即可。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。