问答题
18分
使用VC6打开考生文件夹下的工程proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray...
使用VC6打开考生文件夹下的工程proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类
的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"//********333********"与"//********666********"两行之间。经修改后运行程序,得到的输出为:
10
d=43
注意:只允许在"//********333********"和//********666********"两行之间填写内容,不允许修改其他任何地方的内容。
的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"//********333********"与"//********666********"两行之间。经修改后运行程序,得到的输出为:
10
d=43
注意:只允许在"//********333********"和//********666********"两行之间填写内容,不允许修改其他任何地方的内容。
参考解析: 【参考答案】
int XArray::sum() { //补充函数体
int i, max = a[0], min = a[0];
for (i = 1; i < size; i++)
{
if (max < a[i])
{
max = a[i];
}
if (min > a[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,然后从下标为1的元素开始向后遍历,遍历过程中,将当前遍历到的元素与max和min比较,存在比max大的元素时,更新max值;存在比min小的元素时,更新min值,最后将两者之和作为函数值返回。