zoukankan      html  css  js  c++  java
  • 将长度为n的数组的前端k个元素保持原序移动到数组后端

    //问题:将长度为n的数组的前端k个元素保持原序移动到数组后端
    // 思路:把前k个元素的最后一个元素与数组的最后一个元素交换,前k个元素的倒数第二个元素与数组的倒数第二个元素交换,以此类推。
    #include "stdio.h"
    void KMove(int a[],int k,int n){   //参数:数组a,前k个元素,数组长度
        int tmp;
        for(int i=k-1,j=n-1; i>=0,j>=n-k; i--,j--){   //i的从k个元素的最后一个元素开始,j从数组的最后一个元素开始。往前走
            tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
        }
    }

    int main(){
        int n=10;
        int a[n];
        for(int i=0;i<10;i++) a[i] = i;  //原本是01234 56789
        KMove(a,5,n);                //移动后变成56789 01234
        for(int i=0;i<10;i++) printf("%d ",a[i]);
        getchar();
        return 0;
    }
  • 相关阅读:
    8组-Alpha冲刺-2/6
    8组-Alpha冲刺-1/6
    8组 需求分析报告
    结对编程作业
    8组 团队展示
    第一次个人编程作业
    第一次博客作业
    面向对象程序设计寒假作业3
    面向对象程序设计寒假作业2
    面向对象程序设计寒假作业1
  • 原文地址:https://www.cnblogs.com/BreezeFeng/p/13955743.html
Copyright © 2011-2022 走看看