zoukankan      html  css  js  c++  java
  • 关于固定长度数组中以元素为单位进行的移位操作

    例如,数组: 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
    ",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
    ",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
    ",array[i]);
        }
    }

    结果: 5 1 2 3 4

    如果要移动多位,那么可以重复操作上述操作即可。

  • 相关阅读:
    3步学会用gulp
    div需要重置吗?
    HTML元素遮挡Flash之梦
    移动WEB开发常用技巧
    四:分组查询
    三:函数
    二:查询
    一:MySQL
    三:JVM(重点)
    二:JAVA通知唤醒机制,Lock替换synchronize
  • 原文地址:https://www.cnblogs.com/hushunfeng/p/3892365.html
Copyright © 2011-2022 走看看