问题标题:
求助一道入门级C++题目1.设Δ是集合A上的二元运算,如果对于集合A中的任意元素a和b,都有aΔb=c,且c∈A,则称二元运算Δ对于集合A是封闭的.现有一数组a,假定其数组元素构成集合A.试建立一个类DAT
问题描述:
求助一道入门级C++题目
1.设Δ是集合A上的二元运算,如果对于集合A中的任意元素a和b,都有aΔb=c,且c∈A,则称二元运算Δ对于集合A是封闭的.现有一数组a,假定其数组元素构成集合A.试建立一个类DATA,判断求余运算“%”对集合A是否封闭.即判断数组中的任意两个元素a[i]和a[j],当a[j]不等于0时,a[i]除以a[j]所得余数仍然属于集合A.具体要求如下:
(1)私有数据成员
lint*a;整数指针,指向动态分配的数组空间
lintn;数组中元素个数
(2)公有成员函数
lDATA(intt[],intn1);构造函数,用n1初始化n,并根据n动态生成数组a,用t数组对a数组初始化.
lintbelong(inta[],intn,intx);判断x的值是否在数组a中,如果在返回1,否则返回0.
lvoidfun();判断求余运算%对本对象是否封闭,如果封闭,输出“封闭”.如果不封闭,则输出“不封闭”,同时输出第一个不满足条件的a[i]和a[j].
lvoidprint();输出成员数据的值.
lDATA();析构函数,完成必要的功能.
(3)在主函数中对该类进行测试.先定义两个整型数组d1和d2,分别具有9个元素和8个元素,两个数组的值分别是{1,3,22,4,15,2,7,5,0}和{1,3,8,4,6,7,5,0}.然后用这两个数组初始化两个DATA类的对象test1和test2,测试并输出结果.正确的运行结果如下:
集合:13224152750
封闭
集合:13846750
不封闭:83
蔡玉华回答:
#include <iostream>using namespace std;class DATA{ private: int *a; ...
查看更多