萌新求问
查看原帖
萌新求问
494471
g1306374356楼主2021/8/3 12:56

为什么输入矩阵时用cin能过而用scanf不行?

有没有dalao解释下为啥???

下面是代码:

#include <cstdio>
#include <iostream>
using namespace std;

#define MAXN 5710

int n, m, ans;
char maps[MAXN][MAXN];

int main()
{
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= n; i ++)
		for(int j = 1; j <= m; j ++) 
			cin >> maps[i][j];
	int ans = 0;
	for(int i = 1; i <= n; i ++)
		for(int j = 1; j <= m; j ++)
		if(maps[i][j] == 'h')
		{
        	if(maps[i-1][j] == 'e' && maps[i-2][j] == 'h' && maps[i-3][j] == 'e') ans++;
        	if(maps[i+1][j] == 'e' && maps[i+2][j] == 'h' && maps[i+3][j] == 'e') ans++;
        	if(maps[i][j-1] == 'e' && maps[i][j-2] == 'h' && maps[i][j-3] == 'e') ans++;
        	if(maps[i][j+1] == 'e' && maps[i][j+2] == 'h' && maps[i][j+3] == 'e') ans++;
		}
	printf("%d\n", ans);
	return 0;
}

代码第15行

cin >> maps[i][j];

用 cin 全AC

换成

scanf("%c", &maps[i][j]);

就全WA

(我应该是没输错吧???)

(不信可以亲测)

2021/8/3 12:56
加载中...