问题描述 有一个 � × � n×m 的矩阵(二维数组),要求输出该矩阵中的最大元素及其所在的行号(第几行)和列号(第几列)。矩阵中的元素均为整数。 输入格式 第一行: � n 和 � m ( 0 < � , � ≤ 1000 0<n,m≤1000 ); 接下来 � n 行,每行 � m 个数用空格隔开,并且绝对值小于 1 0 9 10 9 。 输出格式 输出3行,每行一个整数。 其中第1行的输出为矩阵中的最大值。 第2行的输出为矩阵最大值所在的行号(行值)。 第3行的输出为矩阵最大值所在的列号(列值)。 样例 输入数据 1 3 4 1 2 3 4 9 8 7 6 -10 10 -5 2 输出数据 1 10 3 2
时间: 2024-03-23 10:39:39 浏览: 65
juzhenchengfa.rar.rar_C语言二维数组_QT 矩阵_qt二维数组_二维数组
好的,这是一道找矩阵中最大数及其行列号的问题。以下是一个可能的解法:
```
#include <iostream>
using namespace std;
const int N = 1010;
int a[N][N];
int main()
{
int n, m;
cin >> n >> m;
int max_val = -1e9; // 初始化一个极小值
int max_row, max_col;
for (int i = 1; i <= n; i ++ )
for (int j = 1; j <= m; j ++ )
{
cin >> a[i][j];
if (a[i][j] > max_val) // 找到更大的数
{
max_val = a[i][j];
max_row = i;
max_col = j;
}
}
cout << max_val << endl << max_row << endl << max_col << endl;
return 0;
}
```
解法思路:
1. 先读入矩阵的行数和列数;
2. 使用双重循环遍历整个矩阵,同时记录最大值和它所在的行列号;
3. 输出最大值和对应的行列号。
这里的时间复杂度是 $O(nm)$,可以通过本题。
阅读全文