解题思路:这段代码的解题思路如下:
-
首先定义一个大小为5x5的二维数组
arr
来存储用户输入的矩阵元素。 -
使用两层嵌套循环,依次输入矩阵的每个元素。
-
接下来使用另外一个循环,遍历每一行。在每一行中,通过比较找到该行的最大值,并记录下该最大值所在的列号
k
。 -
在当前列
k
上继续遍历每一行,如果发现有元素小于当前行最大值max
,则将最小值保存到变量min
中。 -
如果在当前列上找到了比当前行最大值小的元素,即
min!=0
,则输出该元素所在的行号i+1
、列号k+1
和最大值max
,然后结束程序。 -
如果在当前列上没有找到比当前行最大值小的元素,即
min=0
,则继续寻找下一行。 -
如果所有行都没有找到符合条件的元素,则输出"not found"。
程序代码:
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int arr[5][5];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>arr[i][j];
}
}
for(int i=0;i<5;i++){
int k;
int min=0;
int max=0;
for(int j=0;j<5;j++){
if(arr[i][j]>max){
max=arr[i][j];
k=j;
}
}
for(int j=0;j<5;j++){
if(arr[j][k]<max){
min=arr[j][k];
}
}
if(min==0){
cout<<i+1<<" "<<k+1<<" "<<max;
return 0;
}
}
cout<<"not found";
return 0;
}