输入一个二维数组,找出其中最大的数,并输出其行列号。如果有多个,则依次输出所在行列号。 输入 第一行输入n行,m列,然后输入n*m个元素 输出 第一行输出最大数的值,第二行开始输出最大值所在的行列号。 样例 样例输入1 3 2 1 3 1 0 1 2 样例输出1 3 1 2 提示 注意如果最大值多次出现的话请把所有行列号都输出(一行一个) 先输入行号小的,行号相同时,先输出列号小的 n,m<=100 c++代码
时间: 2024-04-10 17:33:13 浏览: 89
编写一个在具有m行n列的二维数组各元素中找出最大元和最小元并显示在屏幕上的函数模板,并通过主函数对它进行调用以验证其正确性。例如,可设计该函数模板的原型为:
5星 · 资源好评率100%
我明白了您的要求。下面是一个可以解决这个问题的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> arr(n, vector<int>(m));
int maxVal = INT_MIN;
// 输入二维数组,并找到最大值
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> arr[i][j];
maxVal = max(maxVal, arr[i][j]);
}
}
cout << maxVal << endl;
// 输出最大值的行列号
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (arr[i][j] == maxVal) {
cout << i + 1 << " " << j + 1 << endl;
}
}
}
return 0;
}
```
这段代码首先读取输入的行数 `n` 和列数 `m`。然后创建一个大小为 `n` 行 `m` 列的二维数组 `arr` 来存储输入的元素。同时,使用变量 `maxVal` 来记录最大值,初始化为 `INT_MIN`。
接下来,嵌套循环用于读取输入的元素,并找到其中的最大值。在找到最大值的过程中,将其赋给 `maxVal`。
然后,首先输出最大值 `maxVal`。接着,再次使用嵌套循环来输出最大值所在的行列号。如果某个元素的值等于最大值 `maxVal`,则输出其对应的行号和列号。
请注意,根据题目要求,行号和列号是从 1 开始的,因此在输出时需要将行号和列号加 1。
希望这个示例代码能对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文