求以下问题的完整代码,要求使用c++面向对象的程序设计的方法和构造函数
先逐行找最大数,然后判断最大数是否是该列的最小值
运行结果:
代码:
#include <iostream>
using namespace std;
class AnPoint
{
int point[101][101];
int n;
public:
AnPoint() {}
void input()
{
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cin >> point[i][j];
}
}
void show()
{
int max, x=0, y=0;
for (int i = 0; i < n; i++)
{
//找最大点及其下标
max = point[x][0];
x = i; y = 0;
for (int j = 1; j < n; j++)
{
if (point[i][j] > max)
{
max = point[i][j];
x = i;
y = j;
}
}
//判断max是否是y列的最小值
int flag = 0;
for (int k = 0; k < n; k++)
{
if (point[k][y] < max) //有比其最小的
{
flag = 1;
break;
}
}
if (flag == 0)
{
cout << x << " " << y ;
return;//题目不会出现多个鞍点,所以找到一个后直接结束即可
}
}
cout << "NO";
}
};
int main()
{
AnPoint s;
s.input();
s.show();
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注! template<typename T>
void insertionSortOp(T arr[],int[] n){
for(int i=0;i<n;i++){
//e代表需要排序的元素,先对它进行个备份
T e =arr[i];
//j保存元素e应该插入的位置
int j;
for(j=i;j>0&&a[j-1]>e;j--){//终止的条件是找到要插入的位置的前一位比e小
arr[j]=a[j-1];//后移一位腾位置
}
arr[j] = e;
}
}