推荐阅读:Python基础自学实用笔记(总和篇)-By Ryan_3610
5、题目:偏序关系上的最大最小极大极小元
5.1代码
#include <iostream>
#include <stdio.h>
using namespace std;
//偏序关系上的最大最小极大极小元
//判断除主对角线上的数
int main(){
int n,num[20][20];
cout<<"请输入集合中元素个数:";
cin>>n;
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++)
cin>>num[i][j];
}
//最大元判定(列全1)
int flag=0;
cout<<"最大元为:";
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if (i!=j){
if(num[j][i] == 0)
flag = 1;
}
}
if (flag == 0){
cout<<i+1<<" ";
}
flag = 0;
}
cout<<endl;
//极大元判定(行全0)
cout<<"极大元为:";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) {
if (i!=j){
if(num[i][j] == 1)
flag = 1;
}
}
if (flag == 0){
cout<<i+1<<" ";
}
flag = 0;
}
cout<<endl;
//最小元判定(行全1)
cout<<"最小元为:";
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++){
if (i!=j) {
if(num[i][j] == 0)
flag = 1;
}
}
if (flag == 0) {
cout<<i+1<<" ";
}
flag = 0;
}
cout<<endl;
//极小元判定(列全0)
cout<<"极小元为:";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) {
if (i!=j) {
if(num[j][i] == 1)
flag = 1;
}
}
if (flag == 0){
cout<<i+1<<" ";
}
flag = 0;
}
cout<<endl;
}
5.2测试
6
1 1 1 0 1 1
0 1 0 0 0 1
0 0 1 0 1 1
0 0 0 1 0 1
0 0 0 0 1 1
0 0 0 0 0 1