#include using namespace std; int main() { int a[100][100], m, n, i, j,row=0,rowel=0; int max[6] = {}, min[6] = {}; cin >> m >> n; for (i = 0; i <= m; i++) for (j = 0; j <= n; j++) cin >> a[i][j]; for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) if (a[i][j] > max[i]) max[i] = a[i][j]; row = i; } for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) if (a[j][i] < min[i]) min[i] = a[j][i]; rowel = j; } for (i = 0; i <= m; i++) for (j = 0; j <= n; j++) { if (a[i][j] == max[i] && a[j][i] == min[i]) cout << a[i][j] << endl; else cout << "null" << endl; } return 0; }
2条回答 默认 最新
CSDN专家-深度学习进阶 2021-05-18 19:02关注#include<iostream> #include<algorithm> using namespace std; int main() { int m,n,i=0,j=0,k=0,row=0,colum=0,max=0,min=0,t=0,f=0; cin>>n>>m; int a[n][m]; for(i=0;i<n;i++) { for(j=0;j<m;j++) { cin>>a[i][j]; } } for(i=0;i<n;i++) { max=a[i][0]; int b[m]; for(j=0;j<m;j++)//寻找每一行的最大值 { b[m]=a[i][j]; if(a[i][j]>max) { max=a[i][j]; colum=j; row=i; } } sort(b,b+m); if(b[m-1]==b[m-2]) {continue;}//排除最大值为众数的情况 else { for(k=0;k<n;k++)//判断是否为列的最小值 { min=a[row][colum]; if(k!=row&&a[k][colum]<=min) { t=0; break; } else {t=1;} } if(t==1) {f=1;cout<<a[row][colum]<<endl;} } } if(t==0&&f==0) cout<<"null"<<endl; return 0; }你的循环有点乱,if语句有时后面没加括号但是跟了两个执行语句
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报