2022年数组的循环移位共享 .pdf
实验一实验题目:数组的循环移位* 一、实验目的(1)回顾 C+的基本知识(2)理解并分析不同算法的时间和复杂度二、实验内容对于一个给定的字符型数组循环左移i 位,要求尽量不要申请空间, 实现“原地”操作。三、设计与编码1、基本思想把字符数组看成数组ab转换成数组 ba(a代表数组的前 i 个元素, b 代表数组中余下的n-i个元素) , 先将 a 逆置得到 arb,, 再将 b 逆置得到 arbr, 最后将整个 arbr 逆置得到 (arbr)r=ba。2、C+代码:#include #include #include using namespace std; void reverse(int i,int j,char ch) char x; while(in; while(n-) cinmchk; cout请输入数组的长度( 120): mendl; cout请输入 m 个字符数组元素 : chendl; cout请输入数组左移循环的位数(1m ): kendl; 成绩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - cout原字符数组 : chendl; reverse(0,k-1,ch); reverse(k,m-1,ch); reverse(0,m-1,ch); cout循环左移后的字符数组为: chendl; ftime(&t2); t=(t2.time-t1.time)*1000+(t2.millitm-t1.millitm); coutt毫秒endl; return 0; 四、调试与运行1、调试时遇到的主要问题及解决运行时间会一直的变动,基本上是16,31,32这几个数变动,不解,应该没有什么太大关系吧! !2、运行结果(输入及输出,可以截取运行窗体的界面)输入 1 8 abcdefgh 3 输出五、实验心得通过这次实验,我认识到了我的不足,也懂得了很多。在之前,只是一直盲目的跟着书本上的东西打,就像打字一样,不用思考,也不会实际应用。通过这次实验,让我们有了实践的机会。同时也复习了一些C+的知识,让我更加熟悉这些简单语句,也通过书上的很多错误来敲醒我的盲从,学习必须脚踏实地,多写程序,多实践,才是进步的法门。从一次次实验名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 的失败到一次次找办法解决冲突,让我更加学会如何借助帮助文件以及和同学交流来解决问题。这次实验我受益匪浅啊!谢谢学校给我提供了这么好的环境,也谢谢老师对我们的细心指导,老师您辛苦了!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -