藤森有只 2023-10-05 21:35 采纳率: 83.3%
浏览 2

C++wentzwersd

问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息

【输入】
共n+1行。
第一行为两个整数n和m(n,m<=5),分别表示矩阵的行数和列数。
接下来n行,每行m个字符,分别表示字符矩阵中的每个字符。
【输出】
一个整数,表示'#'构成的T字图形个数。
【输入样例1】
3 3
###
#


【输出样例1】
1
【输入样例2】
3 5
**##*
#####
###
【输出样例2】
3

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-05 23:46
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    题目要求计算'#'构成的T字图形个数。根据题目描述,我们首先需要读取输入的矩阵,并统计出T字图形的数量。

    我的解答思路如下:

    1. 读取输入的行数n和列数m。
    2. 使用一个二维字符数组matrix来存储输入的矩阵。
    3. 定义一个整数变量count,用于记录T字图形的数量,初始值为0。
    4. 遍历整个矩阵,对于每一个位置matrix[i][j]:
      1. 如果matrix[i][j]不等于'#',则继续下一个位置。
      2. 判断当前位置上面、下面、左边、右边四个位置的字符是否都为'#',如果是,则count加1。
    5. 输出count的值。

    以下是我实现的C++代码:

    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {
        int n, m;
        cin >> n >> m;
    
        vector<vector<char>> matrix(n, vector<char>(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] == '#') {
                    if (matrix[i-1][j] == '#' && matrix[i+1][j] == '#' && matrix[i][j-1] == '#' && matrix[i][j+1] == '#') {
                        count++;
                    }
                }
            }
        }
    
        cout << count << endl;
    
        return 0;
    }
    

    注意:在代码中,由于题目要求T字图形至少有3个'#',所以在遍历矩阵时,我们从第二行到倒数第二行,从第二列到倒数第二列。这样可以防止越界访问。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月5日

悬赏问题

  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 RPG游戏架构设计和开发方法
  • ¥30 为什么会失败呢,该如何调整
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像