首页 > 移动平台 > 详细

将长度为n的数组的前端k个元素保持原序移动到数组后端

时间:2020-11-10 23:14:17      阅读:102      评论:0      收藏:0      [点我收藏+]
//问题:将长度为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;
}

将长度为n的数组的前端k个元素保持原序移动到数组后端

原文:https://www.cnblogs.com/BreezeFeng/p/13955743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!