题目描述:

本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 … an-1)变换为(am…an-1 a0 a1…am-1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

输入格式:

输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:

8 3
1 2 3 4 5 6 7 8

输出样例:

4 5 6 7 8 1 2 3

本题思路:

利用顺序表的插入、删除算法实现位移。

#include<iostream>
#include<cstdio>
#define Max 101
using namespace std ;
class Cycle
{int list[Max] = {0} ;int length ;public :Cycle( int l ) : length(l) {}  void Creat (){for ( int i = 0 ; i < length ; i++ ){cin >> list[i] ;}}void Traverse ( int q ) {int num = 0 ;while ( q-- ){int t = list[0] ;for ( int i = 0 ; i < length - 1 ; i++ ){list[i] = list[i+1] ;}list[length - 1] = t ;num++ ; }}void Show (){for(int i = 0 ; i < length ; i++ ){if ( i == 0 )    //此处加一个判断 cout << list[i] ;else cout << ' ' << list[i] ;} }
} ; //类后加;(分号)
int main ()
{int m ;  //输入长度 cin >> m ;Cycle c1( m ) ;  //返回长度 int n ;cin >> n ;c1.Creat() ;    //输入数组 c1.Traverse( n ) ;    //遍历 c1.Show() ;return 0 ;
}

注意:

注意:PTA上格式错误:说明输出结果与题目输出样例存在差异
数组输出时要参考英语句子输出原理,也就是第一个单词前面没有空格,或最后一个单词后面没有空格

7-2 数组循环左移(20分)(顺序表实现)相关推荐

  1. 浙江大学PTA 数据结构 习题2.2 数组循环左移 (20 分)

    本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a​0​​a​1​​⋯a​n ...

  2. 7-31 字符串循环左移 (20 分)

    7-31 字符串循环左移 (20 分) 输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整 ...

  3. PTA-6-1 数组循环右移 (20分)(C语言)

    函数接口定义: int ArrayShift( int a[], int n, int m ); 其中a[]是用户传入的数组:n是数组的大小:m是右移的位数.函数ArrayShift须将循环右移后的数 ...

  4. 习题3.12 另类循环队列 (20 分)

    习题3.12 另类循环队列 (20 分) 如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数.请编写算法实现队列的入队和出队操作. 函数 ...

  5. 习题1.9 有序数组的插入 (20 分)

    习题1.9 有序数组的插入 (20 分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...

  6. 6-2 有序数组的插入 (20分)

    6-2 有序数组的插入 (20分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementType ...

  7. 算法 - 数组循环左移m个元素

    题目 整数数组,n个元素 数组循环左移m个元素 [1,2,3,4,5,6,7,8,9] -> [4,5,6,7,8,9,1,2,3] 思路 数组整体逆转 [1,2,3,4,5,6,7,8,9] ...

  8. 长度为n的整数数组循环左移右移m位

    长度为n的整数数组循环左移m位 右移m相当于左移n-m // pat.cpp : Defines the entry point for the console application. //#inc ...

  9. 浙大版《数据结构(第2版)》题目集 习题1.9 有序数组的插入 (20 分) 二分解法

    习题1.9 有序数组的插入 (20 分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...

最新文章

  1. linux kill命令
  2. IntPtr to bytes
  3. 笔记一:python安装和执行
  4. css-modules 简介
  5. 论大型信息系统集成项目的成本管理
  6. 【转】新浪微博手机客户端刷新都是手动刷新或者下拉刷新,为什么不设计成自动刷新?...
  7. sql中的where 1=1有什么用?
  8. 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用
  9. 注解动态赋值_Java注解是如何玩转的,面试官和我聊了半个小时
  10. c# 中关键字_C#中的“使用”关键字
  11. python 生成 和 加载 requirements.txt
  12. yii2 关系...
  13. mysql 页 存储,MySQL InnoDB Engine--数据页存储和UPDATE操作
  14. ,PLCSIM、SIMIT、Amesim、NX MCD、 Process Simulate、Plant Simulation,一文带你了解西门子整个虚拟调试与仿真软硬件体系
  15. Cron在线表达式生成器
  16. (曲率系列4:)基于点拟合二次曲面并求曲率
  17. visio指向插图任意位置和任意改变箭头形状
  18. 三相PWM整流器滞环电流控制仿真
  19. 【vbers】ibv_post_send|IBV_SEND_SOLICITED|RDMA
  20. 快捷截图、标注和取色的小工具snipaste

热门文章

  1. nginx log记录请求响应日志及日志分割
  2. 记一次关于mock Systemc.currentTimeMillis的实践
  3. 多图 | 操作系统中,进程与线程怎么设计的?
  4. 美团/力扣(647)--回文字串
  5. 理查德·汉明和他的汉明码
  6. 音视频技术开发周刊 | 172
  7. SVT-AV1:开源编解码最新进展
  8. linux虚拟机克隆
  9. Redis java API ——Jedis的使用
  10. springcloud——eureka小错误Caused by: java.net.UnknownHostException: eureka7003.com