实验二 C++数组的循环移位实验报告 联系客服

发布时间 : 星期一 文章实验二 C++数组的循环移位实验报告更新完毕开始阅读2db5c20dccbff121dd368339

实验二 数组的循环移位

班级:计算机11-2

学号:11034050240

姓名:朱报龙 成绩:

一、实验目的: 对于一个给定的整型数组循环右移i位。

二、实验内容:⑴ 在原数组中实现循环右移,不另外申请空间;

⑵ 时间性能尽可能好;

三、设计与编码:将这个问题看作是把数组ab转换成数组ba(a代表数组的前i个元素,

b代表数组中余下的n-i个元素),先将a逆置得到arb,再将b逆置得到arbr,最后将整个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; cout<<\请输入几个英文字母:\ cin>>A; int n = A.length(); int i; cout<<\请输入在第几个位置开始右移:\ cin>>i; Converse(A,n,i); system(\}

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); //整个数组逆置 cout<

void Reverse(string &A,int from,int to) { char B; for (int i=0; i<(to-from+1)/2; i++) {

B = A[to-i]; A[to-i]=A[from+i]; //交换元素 A[from+i]=B; } }

四、运行与调试

a) 在调试程序的过程中遇到什么问题,是如何解决的? 不知如何下手,在编代码时遇到很多小问题,通过和同学讨论及上网,将问题都解决了。

b) 程序运行的结果如何?

五、 实验小结

通过这次试验,觉得一个小程序要实现也会遇到很多问题,要多多实践,多上机。将学到的理论运用到实验中去,打好基础,学好算法,提高程序质量。