求大佬帮一帮,为什么输入只能输入两排,输出也不对
查看原帖
求大佬帮一帮,为什么输入只能输入两排,输出也不对
1061261
lllyyyyyy楼主2023/11/16 19:53
#include <stdio.h>
#include <string.h>
int main()
{
	int m, n;
	int i, j;
	int sum = 0;
	scanf("%d%d", &m, &n);//m是行,n是列
	char a[105][105];//防止数组越界
	memset(a, '0',sizeof(a));//初始化设置a全为‘0’
	for (i = 1; i <= m; i++)//行
	{
		for (j = 1; j <= n; j++)//列
			//从1开始:将棋盘周围空出来
		{
			scanf("%c",&a[i][j]);
		}
	}
	for (i = 1; i <= m; i++)
	{
		for (j = 1; j <= n; j++)//遍历棋盘
		{
			sum = 0;//用于统计非雷元素周围雷的个数
			if (a[i][j] == '*')
				printf("*");
			else {
				//一圈全列举出来
				if (a[i - 1][j - 1] == '*') sum++;
				if (a[i][j - 1] == '*') sum++;
				if (a[i + 1][j - 1] == '*') sum++;
				if (a[i - 1][j] == '*') sum++;
				if (a[i + 1][j + 1] == '*') sum++;
				if (a[i - 1][j + 1] == '*') sum++;
				if (a[i + 1][j] == '*') sum++;
				if (a[i][j + 1] == '*') sum++;
				printf("%d", sum);
			}
		}
		printf("\n");//换行
	}
	return 0;

}

2023/11/16 19:53
加载中...