C_数组and二维数组(扫雷地图)操作记录

介绍

本文采用的二维数组通过行于列的操作进行准确赋值,例题名字:扫雷地图
制作一个 int arr[10][10] 的二维数组:
扫雷的地图 有以下几颗雷(3,4) (7,8) (5,2) (1,0) (行,列)要求
让二维数组每一个元素都赋值为0;然后地雷的位置赋值为-1
雷周围的位置(一圈)赋值为1最后打印出地图

源码:

#include<stdio.h>
#include<stdlib.h>
int arrly[10][10];

void location(int x,int k)
{
//将地雷位置赋值到 x(行) and k(列) 中
/****************************************************************************************************
通过 行和列 的控制对地雷周围进行赋值操作
此处为了防止溢出操作,是"从下往上"and"从右往左"进行逐行逐列递减的赋值
所以我的算法步骤是:
先将"x和k"都各加一位,然后在此的"x - 2"and"k - 2"是因为我是"从下往上"and"从右往左"进行逐行逐列递减的赋值
*****************************************************************************************************/
	for (int i = x + 1; i > x - 2; --i)//行操作
	{
		for (int j = k + 1; j > k - 2; --j)//列操作
		{
			//if判断是否是地雷位置,如果是则赋值 -1,
			if (i == x && j == k)
				arrly[x][k] = -1;
			//else if 进行判断是否大于等于0防止溢出操作,如果是则赋值 1
			else if (i >= 0 && j >= 0 && i < 10&& j < 10)
				arrly[i][j] = 1;
		}
	}
}

int main()
{
	//初始化二维数组全部赋值为0
	for (int i = 0; i < 10; ++i)
	{
		for (int j = 0; j < 10; ++j)
		{
			arrly[i][j] = 0;
		}
	}
	//传递埋地雷位置到location函数中
	int r = 1, w = 0;
	location(r, w);
	r = 3, w = 4;
	location(r, w);
	r = 5, w = 2;
	location(r, w);
	r = 7, w = 8;
	location(r, w);

	//打印地雷位置
	for (int i = 0; i < 10; ++i)
	{
		for (int j = 0; j < 10; ++j)
		{
			printf("%d\t", arrly[i][j]);
		}
		printf("\n");
	}
	system("pause");
	return 0;
}

运算结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值