请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程pl,og3,其中声明了ValArray类,该类在内部维护一个动态分配的int型数组v。ValArr~类的成员函数cycle用于对数组元素进行向左循环移动。调用一次cycle后,数组的第二个元素

admin2021-09-05  47

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程pl,og3,其中声明了ValArray类,该类在内部维护一个动态分配的int型数组v。ValArr~类的成员函数cycle用于对数组元素进行向左循环移动。调用一次cycle后,数组的第二个元素至最后一个元素都将向左移动一个位置,而最左端的元素将循环移动到最右端位置上。例如,若ValArray表示的数组为{1,2,3,4,5},则第一次调用cycle后,数组变为{2,3,4,5,1},第二次调用cycle后,数组变为{3,4,5,1,2},依次类推。请编写成员函数cycle。在main函数中给出了一组测试数据,此情况下程序的输出应该是:
v={1,2,3,4,5}
v={2,3,4,5,1}
v={3,4,5,l,2}
v={4,5,1,2,3}
v={5,1,2,3,4}
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFfle已经编译为obj文件,并且在本程序中调用。
//VaiArray.h
#include
usingnamespacestd;
classVaiArray{
int*v;
intsize;
pubiic:
VaiArray(constint*p,intn):
size(n)
{
v=newint[size];
for(inti=0;iv=P
}
~VaiArray(){delete[]v;}
voidcycle();
voidprint(ostream&out)const
{
out<<’{’;
for(inti=0;iout<<<",";
out<}
};
voidwriteToFile(constchar*);
//main.cpp
#include"ValArray.h"
voidValArray::cycle()
{
//将数组v中的size个整数依次移动到它的前一个单元,其中第一个整数移到原来最后元素所在单元。
//********333********
//********666********
}
intmain()
{
constinta[]={1,2,3,4,5);
ValArrayv(a,5);
for(inti=0;i<5;i++){
cout<<"v=";
v.print(cout);
cout<v.cycle();
}
writeToFile("");
return0;
}

选项

答案for (int i = 0; i < size-1; i++) { int temp = v[i]; v[i] = v[i+1]; v[i+1] = temp; }

解析 程序要将数组v中的size个整数依次移动到它的前一个单元,其中第一个整数移到原来最后元素所在单元。for循环语句用于遍历整个数组,每循环一次便将当前元素与后一个元素互换,因此循环变量的取值范围是0 size-2,最后一个元素不需遍历。
转载请注明原文地址:https://kaotiyun.com/show/xpfp777K
0

最新回复(0)