題目要求:給定 m x n 矩陣,找出絕對值最大的元素,輸出其行號、列號(從 1 起算)與原始值。若有多個相同絕對值,取行號最小者,行號相同則取列號最小者。
m, n 直到 EOF。maxAbs、bestRow、bestCol、bestVal。Math.abs()(或 C 的 labs()),若絕對值更大則更新;相等時依序比較行、列。#include <iostream>
#include <cmath>
using namespace std;
int main() {
int m, n;
while (cin >> m >> n) {
int bestRow = 1, bestCol = 1;
long bestVal = 0;
long maxAbs = -1;
for (int i = 1; i <= m; ++i) {
for (int j = 1; j <= n; ++j) {
long x; cin >> x;
long absX = labs(x);
if (absX > maxAbs) {
maxAbs = absX;
bestVal = x;
bestRow = i;
bestCol = j;
}
}
}
cout << bestRow << ' ' << bestCol << ' ' << bestVal << endl;
}
return 0;
}
105x105),避免越界。maxAbs = -1 確保第一個元素必定更新。此題考驗基本輸入處理、絕對值比較與座標記錄,是二維陣列操作的入門經典。