计算机二级C++机试的一个问题,望赐教

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:55:21
请使用"答题"菜单或使用VC6打开考生文件夹下的工程文件proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:
2 3 4 5 27 28 31 66 75
2 3 4 5 6 27 28 31 66 75
2 3 4 5 6 19 27 28 31 66 75
3 4 5 6 19 27 28 31 66 75
3 4 5 6 19 27 28 31 66 75
要求:
补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其他部分。
注意:
程序最后已经将结果输出到文件out.dat中。输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。

#include"IntegerSet.h"
#include<iomanip>

IntegerSet::IntegerSet(int data[], int size): counter(0){
for(int i=0; i<size; i++) add(data[i]);
}

void IntegerSet::add(int element){
int j;
//从后往前寻找第一个小于等于element的元素
for(j=counter; j>0; j--)
if(

很明显 软件的问题
如果你能找到它存放源程序的当前文件夹的话,就自己手动创建一个文件吧

没那个头文件,不能编译啊 这自己分析的话往往错误都发现不了

for(j=counter; j>0; j--)
if(element>=elem[j-1]) break;
//集合中存在与element等值的元素,立即返回
if(j>0)
if(element==elem[j-1]) return;
for(int k=counter; k>j; k--) elem[k]=elem[k-1];
elem[j]=element;

你在这个地方出错的,最好重新做一便
因为我做过,而且我在考试时遇到了相似的题目,你最好要弄懂

正式考试的时候你大可放心