问题:找出一个二维数组(以三行四列的数组为例)中的鞍点,即该位置上的元素在该行上值最大,在该列上值最小(也可能没有鞍点)
输入形式:
标准输入:二维数组(以三行四列的数组为例)
输出形式:
标准输出:如果有鞍点,输出鞍点的值及所在行列(例如[1][2]=96 is Saddle Point),如果没有,输出没有鞍点(例如 No Saddle Point)
代码:
#includeusing namespace std; int main() { int a[3][4]; for(int i = 0;i < 3;i++) //for循环输入 { for(int j = 0;j < 4;j++) cin>>a[i][j]; } int i = 0,num = 0; bool flag = true; //寻找每行的最大值,其值标记为max,其列标记为temp后,在该列逐个比较——如果max是该列的最小值,则输出该点的位置;反之,搜索下一行,直至结束 for(;i < 3;i++) { int max = 0,temp; for(int j=0;j < 4;j++) { if(a[i][j] > max) { max = a[i][j]; temp = j; } } for(int m = 0;m < 3;m++) { if(a[m][temp] < max) flag = false; } //当max不是该列的最小值时,跳出该层循环,执行下一层 if(flag == false) { flag = true; continue; } else { cout<<"["<



