在一个由星号(*)和点(.)构成的n*m的矩形中,已知星号正好有3个,请问哪个位置的点改成星号,这4个星号能构成一个矩形呢? 输入格式 共n+1行,第一行两个正整数数n和m,分别表示矩形的行列值(0<m,n<100)。 接下来n行,每行有m个字符。字符包括(“.”和“*”)。 输入保证可以构成矩形。 输出格式 第4个星号*的位置c++代码
时间: 2024-04-10 08:27:14 浏览: 65
c++.zip
以下是基于C++的代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<char>> rectangle(n, vector<char>(m));
// 读取矩形字符
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> rectangle[i][j];
}
}
// 寻找第4个星号的位置
int starCount = 0;
int starRow = -1, starCol = -1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (rectangle[i][j] == '*') {
starCount++;
if (starCount == 4) {
starRow = i;
starCol = j;
break;
}
}
}
if (starCount == 4) {
break;
}
}
// 输出第4个星号的位置
cout << starRow + 1 << " " << starCol + 1 << endl;
return 0;
}
```
注意,此代码假设输入保证存在满足条件的点,即满足星号数为3个,且能构成矩形。
希望能帮到你!
阅读全文