2301: 【入门】操场换位置
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
同学们在操场上排成了一个 n 行 m 列的队形,请将这个队形中,年龄最大的同学和年龄最小的同学交换位置,并输出交换的结果(本题数据保证年龄最大的同学和年龄最小的同学在矩阵中是唯一的)。
比如:如下是一个 3 行 4 列的队形,这个队形中每个数字代表了每个同学的年龄。
8 10 18 9
15 12 10 6
17 3 12 15
这个队形中,年龄最大的同学在第 1 行第 3 列,年龄最小的同学在第 3 行第 2 列,将他们交换位置后输出结果为:
8 10 3 9
15 12 10 6
17 18 12 15
输入
第 1 行有 2 个整数 n 和 m ,分别代表队形的行和列的值(2≤n,m≤200)。
接下来 n 行,每行有 m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼100 之间)
输出
输出 n 行 m 列,代表交换位置后的结果,每行的 m 个数之间用空格隔开。
样例输入 复制
3 4
8 10 18 9
15 12 10 6
17 3 12 15
样例输出 复制
8 10 3 9
15 12 10 6
17 18 12 15
提示
#include<bits/stdc++.h> using namespace std; const int N=210; int a[N][N],n,m,ma=INT_MIN,mi=INT_MAX; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; ma=max(ma,a[i][j]); mi=min(mi,a[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if (a[i][j]==ma) cout<<mi<<" "; else if(a[i][j]==mi) cout<<ma<<" "; else cout<<a[i][j]<<" "; } cout<<endl; } return 0; }