scanf读入字符和cin读入字符有什么不同?
  • 板块学术版
  • 楼主Ascnbeta
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/7/6 14:58
  • 上次更新2024/7/6 16:45:21
查看原帖
scanf读入字符和cin读入字符有什么不同?
767561
Ascnbeta楼主2024/7/6 14:58

rt,这是两次提交记录AC WA

AC代码:

#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
int l[105][105];
void dfs(int x,int y) {
	if (x < 1 || y < 1 || x > n || y > m || l[x][y] == 0) return;
	l[x][y] = 0;
	dfs(x-1,y);
	dfs(x,y-1);
	dfs(x+1,y);
	dfs(x,y+1);
	dfs(x-1,y-1);
	dfs(x-1,y+1);
	dfs(x+1,y-1);
	dfs(x+1,y+1);
}
int main() {
	scanf("%d%d",&n,&m);
	for (int i = 1; i <= n ; i++) {
		 for (int j = 1; j  <= m ; j++) {
		 	char c;
		 	cin >> c; 
		 	if (c == 'W') l[i][j] = 1; 
		 }
	}
	for (int i = 1; i <= n ; i++) {
		for (int j = 1; j  <= m ; j++) {
			if (l[i][j] == 1) {
				ans++;
				dfs(i,j);
			}
		}
	}
	printf("%d",ans);
	return 0;
}

WA代码:

#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
int l[105][105];
void dfs(int x,int y) {
	if (x < 1 || y < 1 || x > n || y > m || l[x][y] == 0) return;
	l[x][y] = 0;
	dfs(x-1,y);
	dfs(x,y-1);
	dfs(x+1,y);
	dfs(x,y+1);
	dfs(x-1,y-1);
	dfs(x-1,y+1);
	dfs(x+1,y-1);
	dfs(x+1,y+1);
}
int main() {
	scanf("%d%d",&n,&m);
	for (int i = 1; i <= n ; i++) {
		 for (int j = 1; j  <= m ; j++) {
		 	char c;
		 	scanf("%c",&c);
		 	if (c == 'W') l[i][j] = 1; 
		 }
	}
	for (int i = 1; i <= n ; i++) {
		for (int j = 1; j  <= m ; j++) {
			if (l[i][j] == 1) {
				ans++;
				dfs(i,j);
			}
		}
	}
	printf("%d",ans);
	return 0;
}

两次代码的不同只是在于把

scanf("%c",&c);

换成了

cin >> c;

这两个输入不应当在结果上相同的吗,为什么会导致WA呢

2024/7/6 14:58
加载中...