请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"

admin2019-03-24  23

问题 请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"//*************333*************"与"//*************666*************"两行之间。经修改后运行程序,得到的输出为:
    10
    d=43
    注意:只允许在"//*************333*************"和//*************666*************"两行之间填写内容,不允许修改其他任何地方的内容。
//Array.h
#include
#include
using namespace std;
class XArray (//数组类
    int*a;
    int Size;
public:
  XArray(int b[],int len):
size(len)//构造函数
    {
    if(size<2)(cout<<"参数不合适!"<    a=new int[size];
    for(int i=0;i=b
    }
    int sum();//返回数组a[size]中的最大值与最小值之和
    int length()const { return size,}//返回数组长度
    ~XArray()(delete[]a;}
};
void writeToFile(const char*);
//不用考虑此语句的作用
//main.cpp
#include"Array.h"
//返回数组a[size]中的最大值与最小值之和
int XArray::sum()(//补充函数体
    //*************333*************
    //*************666*************
}
voidmain(){
  int s1[10]={23,15,19,13,26,33,18,30,20,10};
    XArray x(sl,10);
    int d=x.sum();
    cout<    cout<<"d="<    writeToFile ("c:\、test\\");
//不用考虑此语句的作用
}

选项

答案int XArray::sum(){//补充函数体 int i,max=a[0],min=a[0]; for(i=1;ia[i]) ( min=a[i]; } } return max+min: }

解析 Xarray类中包含两个数据成员:a是数组的指针,size是数组的长度。main()函数中使用数组s1构造Xarray对象x,此时对象x中,a是包含10个整型元素的数组指针,size是10。成员函数SUm()的作用是求得数组a[size]中最大值和最小值之和,所以函数体中需要遍历a的10个元素,找出最大值max和最小值min,再将两者之和返回,程序首先将数组a的第一个元素赋给max和min,然后从下标为l的元素开始向后遍历,遍历过程中,将当前遍历到的元素与max和min比较,存在比max大的元素时,更新max值;存在比min小的元素时,更新min值,最后将两者之和作为函数值返回。
转载请注明原文地址:https://jikaoti.com/ti/J3t0FFFM
0

最新回复(0)