求助:结果和答案一样为什么还会出错啊
查看原帖
求助:结果和答案一样为什么还会出错啊
268180
hgy_hjl楼主2020/9/19 10:43
#include <stdio.h>

int main()
{
	int row, column;
	int cnt = 0;
	int m[8][2] = 
	{
		{-1, -1},
		{-1, 0},
		{-1, 1},
		{1, 0},
		{1, -1},
		{1, 1},
		{0, -1},
		{0, 1},
	};
	
	scanf("%d%d", &row, &column);
	
	char field[row][column];
	int ret[row][column];
	
	fflush(stdin);
	
	for(int i = 0; i < row; i++)
	{
		for(int j = 0; j < column; j++)
		{
			scanf("%c", &field[i][j]);
		}
		getchar();
	}
	
	for(int i = 0; i < row; i++)
	{
		for(int j = 0; j < column; j++)
		{
			if(field[i][j] == '?')
			{
				for(int l = 0; l < 8; l++)
				{
					if( i + m[l][0] >= 0 && i + m[l][0] <= row - 1 && j + m[l][1] >= 0 && j + m[l][1] <= column -1 )
					{
						int temp1 = i + m[l][0];
						int temp2 = j + m[l][1];
						if(field[temp1][temp2] == '*')
						{
							cnt++;
						}
					}
				}
				
				ret[i][j] = cnt;
				cnt = 0;
			}
			else if(field[i][j] == '*')
			{
				ret[i][j] = -1;
			}
		}
	}
	
	for(int i = 0; i < row; i++)
	{
		for(int j = 0; j < column; j++)
		{
			if(ret[i][j] == -1)
				printf("*");
			else
				printf("%d", ret[i][j]);
		}
		printf("\n");
	}

	return 0;
}

第一个测试点输出结果和答案一样啊?才10分......

2020/9/19 10:43
加载中...