当前位置: 首页 > news >正文

[c]扫雷

题目描述

扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。

玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。

现在给出n行m列的雷区中的地雷分布,请计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

输入描述:

第一行输入两个整数n,m ,分别表示雷区的行数和列数。接下来n行,每行m个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。1<=n,m<=100

输出描述:

输出包含n行,每行m个字符,描述整个雷区。用‘*’表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符

示例1

输入

3 3
*??
???
?*?

输出

*10
221
1*1

题目很容易理解,就是判断字符数组元素周围*元素的个数

下面附上代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int n, m;int count = 0;char s[100][100] = { 0 };scanf("%d %d", &n, &m);getchar();for (int i = 1; i <= n; i++){for (int k = 1; k <= m; k++){s[i][k] = getchar();}getchar();}for (int i = 1; i <= n; i++){for (int k = 1; k <= m; k++){count=0;if (s[i][k] == '*'){printf("*");}else{if (s[i - 1][k] == '*' )count++;if (s[i + 1][k] == '*')count++;if (s[i][k - 1] == '*')count++;if (s[i][k + 1] == '*')count++;if (s[i - 1][k - 1] == '*' )count++;if (s[i - 1][k + 1] == '*')count++;if (s[i + 1][k + 1] == '*')count++;if (s[i + 1][k -1] == '*')count++;printf("%d", count);}}printf("\n");;}return 0;
}

注意每输入一组需要用一次getchar,来读取输入完的回车,新手可能会遇到输入时候程序直接结束了,明明还没有输完,就打印结果了,这种情况可能就是getchar没有合理利用

我们可以输入完进行调试,看看创建的字符数组中是不是自己想要的字符

http://www.lryc.cn/news/267804.html

相关文章:

  • 数据结构-十大排序算法
  • Apache RocketMQ,构建云原生统一消息引擎
  • (四) ClickHouse 中使用 `MaterializedMySQL` 引擎单独同步 MySQL 数据库中的特定表(例如 `aaa` 和 `bbb`)
  • TikTok真题第4天 | 1366. 通过投票对团队排名、1029.两地调度、562.矩阵中最长的连续1线段
  • 时序预测 | Matlab实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络时间序列预测
  • 负载均衡——Ribbon
  • 7.微服务设计原则
  • 【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现
  • BIT-6-指针(C语言初阶学习)
  • 傻瓜式教学Docker 使用docker compose部署 php nginx mysql
  • node express简单微服务
  • nginx-proxy-manager初次登录502 bad gateway
  • Servlet见解2
  • 【SpringCloud】-OpenFeign实战及源码解析、与Ribbon结合
  • 走进数字金融峰会,为金融科技数字化赋能
  • docker-compose部署kafka
  • Spark与Hadoop的关系和区别
  • 蓝桥杯-Excel地址[Java]
  • OSPF多区域配置-新版(12)
  • 华为---USG6000V防火墙web基本配置示例
  • Ksher H5页面支付实例指导 (PHP实现)
  • https密钥认证、上传镜像实验
  • three.js使用精灵模型Sprite渲染森林
  • 什么是数据可视化?数据可视化的流程与步骤
  • 2022年山东省职业院校技能大赛高职组云计算赛项试卷第二场-容器云
  • Unity3D 中播放 RTSP 监控视频
  • [spark] DataFrame 的 checkpoint
  • flask文件夹列表改进版--Bug追踪
  • Elasticsearch之常用DSL语句
  • 鸿蒙实战-库的调用(ArkTS)