各位大佬救救我!紧急求救🆘在线等

题目描述

给定一个n*m的二进制矩阵,请你数一数矩阵中完全被0上下左右包围的1的数目。

输入格式

第一行两个整数n和m(3<=n,m<=100)
接下来n行,每行m个0或1的整数。

输出格式

输出一个整数代表结果

蒟蒻WA代码

#include<bits/stdc++.h>
using namespace std;
int a[505][505];
int main(){
  int n,m,cnt;
  cin >> n >> m;
  memset(a,-1,sizeof(a));
  for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
      cin >> a[i][j];
    }
  }
  for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
      if(a[i][j]==1&&a[i-1][j]&&a[i][j+1])
        cnt++;
    }
  }
  cout << cnt;
}
1 个赞

核心代码:

    int main() {
        int n, m;
        cin >> n >> m;
        vector<vector<int>> matrix(n, vector<int>(m));

        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                cin >> matrix[i][j];
            }
        }
        int count = 0;
        for (int i = 1; i < n - 1; ++i) {
            for (int j = 1; j < m - 1; ++j) {
                if (matrix[i][j] == 1) {
                    if (matrix[i - 1][j] == 0 && matrix[i + 1][j] == 0 &&matrix[i][j - 1] == 0 && matrix[i][j + 1] == 0) {
                        count++;
                    }
                }
            }
        }

        cout << count << endl;

记得加 return 0 和头文件

1 个赞

vector<vector> matrix(n, vector(m));
这一行代码有问题啊

1 个赞

Compile Error

0 分

1 个赞


matrix(n, vector<int>(m));

大佬可以解释一下吗

这段是C++中的一个函数调用,用于创建一个矩阵的实例

OK谢谢

还有问题的话明天再说