• 如何将数组中的后面m个数移动为前面m个数


    思路分析:

    可以通过递归的方法实现调整:

    (1)将前n-m个元素的顺序颠倒。

    (2)将后面m个元素的顺序颠倒。

    (3)将n个元素的顺序全部颠倒。

    通过以上3个步骤的执行,就可以把数组的元素颠倒。

    代码如下:

    #include "stdafx.h"
    #include <stdio.h>
    void func(int* start, int* end)
    {
        while (start < end)
        {
            int temp = *start;
            *start = *end;
            *end = temp;
            start++;
            end--;
        }
    }
    void f(int n, int m, int* numbers)
    {
        func(numbers, numbers + n-m - 1);//前n-m个数顺序颠倒
        func(numbers + n-m, numbers + n - 1);//后m个数顺序颠倒
        func(numbers, numbers + n - 1);//所有数顺序颠倒
    }
    int main()
    {
        int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int len = sizeof(array) / sizeof(array[0]);
        int i;
        f(len, 7, array);
        for (i = 0; i < len; i++)
            printf("%d ", array[i]);
        getchar();
        return 0;
    }

        效果如图:

  • 相关阅读:
    Hadoop无法访问web50070端口
    Hadoop问题汇总
    Hadoop问题汇总
    Linux网络连接模式以及修改静态IP
    Linux网络连接模式以及修改静态IP
    Linux基本命令
    SQLite数据操作
    SQLite初试
    编码与解码
    属性列表
  • 原文地址:https://www.cnblogs.com/cysolo/p/3598200.html
Copyright © 2020-2023  润新知