C++题目59:二维整型数组的“最小点”【输入形式】 从控制台读入二维数组。 第一行只有以空格分隔的两个正整数n和m(n,m<=10),n代表二维数组的行数,m代表二维数组的列数。 然后在后续n行上输入二维数组的元素,每行有m个以若干空格分隔的整数,代表二维数组在该行上的所有元素。 【输出形式】 向控制台输出二维数组的"最小点",按行下标、列下标从小到大的顺序输出,每行一个,先输出"最小点"数值,再输出对应的行数、列数(行列都从1开始计数),以一个空格分隔。 【样例说明】 输入了一个三行四列的二维数组,第一行第三列的元素1是第一行的最小元素,同时也是第三列的最小元素,所以该元素是"最小点",输出1 1 3。同样第三行第一列的元素-71也是第三行的最小元素,同时是第一列的最小元素,故该元素也是"最小点",输出-71 3 1。
时间: 2024-01-22 22:19:22 浏览: 83
```c++
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int a[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int min_row = i, min_col = j;
// 找出当前元素所在行的最小值
for (int k = 0; k < m; k++) {
if (a[i][k] < a[i][min_col]) {
min_col = k;
}
}
// 找出当前元素所在列的最小值
for (int k = 0; k < n; k++) {
if (a[k][j] < a[min_row][j]) {
min_row = k;
}
}
// 如果当前元素既是所在行的最小值,又是所在列的最小值,则输出
if (i == min_row && j == min_col) {
cout << a[i][j] << " " << i + 1 << " " << j + 1 << endl;
}
}
}
return 0;
}
```
阅读全文