zoukankan      html  css  js  c++  java
  • 数组循环左移(C语言实现)

    一个数组a中存有n(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥)个位置,即将a中的数据由(a0​​a1​​an1​​)变换为(am​​an1​​a0​​a1​​am1​​)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

     (将数组最后一个元素提出,然后把数组的其他所有元素后移,再把数组最后那个元素赋给数组的第一个位置)

    #include<stdio.h>
    int main()
    {
    int a[100];
    int i, j, n, m, t;
    printf("分别输入数组长度(n)以及移动的位数(m):");
    scanf("%d%d", &n, &m);
    printf("输入数组:");
    for (i = 0; i<n; i++)
    {
    scanf("%d", &a[i]);
    }
    for (i = n - 1;i>m-1; i--)
    {
    t = a[n-1];
    for (j = n-1;j>0; j--)
    {
    a[j] = a[j-1];
    }
    a[0] = t;
    }

    printf("输出移动后的结果:");
    for (i = 0; i < n; i++)
    {
    printf(" %d",a[i]);
    }

    printf(" ");
    return 0;
    }

    运行示例:

  • 相关阅读:
    数据库各类模板
    React+Cesium安装部署
    VS2019+QT 制作自定义控件
    Vue+arcgis(1)
    将TIF/PNG等转为GeoTIFF
    QT 同名信号无法识别的问题
    VSCode配置PyQt5
    Python中类属性和self属性的区别
    postgresql的数据复制
    在windows server 2012 R2上搭建nginx环境
  • 原文地址:https://www.cnblogs.com/didiaoxiaoguai/p/7487777.html
Copyright © 2011-2022 走看看