题目分析能力实战训练

本文通过扫雷游戏和二值图像的最大面积求解,探讨了矩阵操作和递归在问题解决中的应用。在扫雷部分,介绍了如何遍历矩阵计算雷区数量。在二值图像处理中,利用递归寻找最大面积并更新最大值。同时,针对液晶显示器问题,分析了数字显示的逻辑,并给出了构建和输出数字模型的方法。
摘要由CSDN通过智能技术生成

一、扫雷(题目在代码源程序里)
1、 循环依次查看每个点周围有的八个点当中,多少个是雷。
2、 判断点为雷,count加1
3、修改对应矩阵的值

/*
扫雷游戏(难度系数:3)
(输入文件:mine.txt,输出文件:estdout.pc2)
   玩过扫雷游的朋友都知道,该游戏的目标是找出一个n*m矩阵内的所有的地雷,在本题中,你需要为每一个单元格统计出它周围地雷的个数,每个单元格最多有8个相邻单元格,如下图,4*4 的格子里,用"*"表示雷,用"^" 表示没有雷。
*^^^
^^^^
^*^^
^^^^
计算后的输出结果为:
   *100
   2210
   1*10
   1110
输入数据:
文件内包含若干个矩阵,对于每一个矩阵,第一行包含两个数M和N,分别表示该矩阵的行数和列数(0<N,M<100),接下来N行包含M个字符,就是该矩阵,用"*"表示地雷,用"^"表示空白。当N=M=0时,表示文件结束,不用处理该行,
输出数据:
对于每一个矩阵,首先在单独一行打印出矩阵序号:Field #X: 其中X是矩阵的编号,从1开始编号,接下来N行中,读入的"^"用该位置周围的地雷数目所代替,地雷处,仍用"*"表示。输出相邻的两个矩阵之间,空一行。

样例输入:
Mine.txt:
4 4 
*^^^
^^^^
^*^^
^^^^
8 8
*^^^*^^^
*^****^^
^*^^**^^
^^**^**^
^*^^**^^
*^^^*^^^
^^**^**^
^*^^**^^
0 0
estdout.pc2:
Field #1:
*100
2210
1*10
1110

Field #2:
*324*310
*4****20
2*56**41
23**6**1
2*34**31
*334*531
23**5**1
1*33**31

*/
#include "stdio.h"
#define MAX_SIZE 100
void main()
{
    char a[MAX_SIZE][MAX_SIZE], b[MAX_SIZE][MAX_SIZE];
    int n, m;
    scanf("%d%d", &n, &m);

    for(int i=0; i<n; i++)
    {
        scanf("%s", &a[i]);
    }
    for(i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(a[i][j] == '*')
            {
                b[i][j] = '*';
            }
            else
            {
                int count = 0;
                if(i>0 && j>0 && (a[i-1][j-1] == '*'))
                    count++;
                if(i>0 && (a[i-1][j] == '*'))
                    count++;
                if(i>0 && j<m-1 && (a[i-1][j+1] == '*'))
                    count++;       
                if(j>0 && (a[i][j-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值