#includeusing namespace std; typedef int Func; int arr[100][2];//集合元素 int matrix[100][100];//二元关系矩阵 int n, m, c; //1--自反性 Func function1() { for (int i = 0; i < m; i++) { if (matrix[i][i] != 1) { cout << "二元关系不具有自反性。" << endl; return 0; } } cout << "二元关系具有自反性。" << endl; return 0; } //2--反自反性 Func function2() { for (int i = 0; i < m; i++) { if (matrix[i][i] == 1) { cout << "二元关系不具有反自反性。" << endl; return 0; } } cout << "二元关系具有反自反性。" << endl; return 0; } //3--对称性 Func function3() { for (int i = 0; i < m; i++) { for (int j = i+1;j < m;j++) { if (matrix[i][j] == 1&& matrix[j][i] != 1) { cout << "二元关系不具有对称性。" << endl; return 0; } } } cout << "二元关系具有对称性。" << endl; return 0; } //4--反对称性 Func function4() { for (int i = 0; i < m; i++) { for (int j = i+1; j < m; j++) { if (matrix[i][j] == 1&&matrix[j][i] ==1) { cout << "二元关系不具有反对称性。" << endl; return 0; } } } cout << "二元关系具有反对称性。" << endl; return 0; } //5--传递性 Func function5() { for (int i = 0; i < m; i++) { for (int j = 0; j < m; j++) { if (matrix[i][j] == 1) {//找到(i,j),继续寻找是否存在(j,k),并且判断是否存在(i,k),同时i!=k for (int k = 0; k < m; k++) { if (k != i && matrix[j][k] == 1 && matrix[i][k] != 1) { cout << "二元关系不具有传递性。" << endl; return 0; } } } } } cout << "二元关系具有传递性。" << endl; return 0; } int main() { cout << "请输入集合中元素的个数:" << endl; cin >> m; cout << "请输入集合中有元素对的个数:" << endl; cin >> n; cout << "请输入元素关系:(输入格式:元素1【空格】元素2【回车】)" << endl; for (int i = 0; i < n; i++) { cin >> arr[i][0] >> arr[i][1]; matrix[arr[i][0]-1][arr[i][1]-1] = 1; } cout << "二元关系的矩阵表示为:" << endl; for (int i = 0; i < m; i++) { for (int j = 0; j < m; j++) { cout << matrix[i][j] << " "; } cout << endl; } cout << endl; cout << "1--判断自反性" << endl; cout << "2--判断反自反性" << endl; cout << "3--判断对称性" << endl; cout << "4--判断反对称性" << endl; cout << "5--判断传递性" << endl; cout << "quit--输入其他数字退出" << endl; cout << "请选择功能:" << endl; cin >> c; while (c <= 5 && c >= 1) { switch (c) { case 1: function1(); break; case 2: function2(); break; case 3: function3(); break; case 4: function4(); break; case 5: function5(); break; default: break; } cout << "请输入选项:" << endl; cin >> c; } cout << "Bye~" << endl; }



