0
已采纳
李祈乐
新手光能
新手光能
首先,输入矩阵。
然后开始判断,找每行最大值,每列最小值,这时候需要三重循环,
前两个循环遍历每行每列的元素,第三个循环遍历每个元素,
第三个循环每次赋bool型t=true;
对于这个数,如果不是每列最小值或者不是每行最大值,也就是大于每列一个元素或小于每行一个元素,
那么它就不是鞍点。
for(int k=1;k<=5;k++)
{
t=true;
if(a[i][k]>a[i][j]||a[k][j]<a[i][j])
{
t=false;
break;
}
}
跳出这个循环,继续遍历下一个行和列的元素,如果t一直循环完第三个循环,那么t一直处于true的状态,那么这就是我们要求的鞍点
if(t==true)
{
cout<<i<<" "<<j<<" "<<a[i][j];
return 0;
}
然后直接输出行列和这个元素,结束整个程序(return 0;)
在这里不需要考虑矩阵存在多个鞍点。
如果一直没有输出,那么矩阵不存在鞍点,程序没有结束,这时,在最后补上
cout<<"not found";
return 0;
0