资源描述
实验二数组的循环移位班级:计算机11-2学号:11034050240姓名:朱报龙成绩:一、实验目的:对于一个给定的整型数组循环右移i位。二、实验内容:在原数组中实现循环右移,不另外申请空间;时间性能尽可能好;三、设计与编码:将这个问题看作是把数组ab转换成数组ba(a代表数组的前i个元素, b代表数组中余下的n-i个元素),先将a逆置得到ab,再将b逆置得到ab,最后将整个 arbr逆置得到(arbr)r=ba。设Reverse函数执行将数组元素逆置的操作,对abcdefgh向左循环 移动3个位#include #include using namespace std;void Converse(string A, int n, int i);void Reverse(string &A, int from, int to);void main()string A;coutA;int n = A.length();int i;couti;Converse(A,n,i);system(pause);void Converse(string A, int n, int i)Reverse(A, 0, i-1);/前 i 个元素逆置Reverse(A, i, n-1);/后 n-i 个元素逆置Reverse(A, 0, n-1);/整个数组逆置coutA;void Reverse(string &A,int from,int to)char B;for (int i=0; i(to-from+1)/2; i+) B = Ato-i;Ato-i=Afrom+i; /交换元素 Afrom+i=B;四、运行与调试a)在调试程序的过程中遇到什么问题,是如何解决的?不知如何下手,在编代码时遇到很多小问题,通过和同学讨论及上网,将问题都解决了。b)程序运行的结果如何?. F:ch e ngxuqyu%vDe bugqyuw. exe感瀚踽蠢始石移:3五、实验小结通过这次试验,觉得一个小程序要实现也会遇到很多问题,要多多实践,多上机。将学到 的理论运用到实验中去,打好基础,学好算法,提高程序质量。
展开阅读全文