测试点数据是否有问题?
  • 板块P1683 入门
  • 楼主HandsomeZhai
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/2 13:35
  • 上次更新2024/11/2 13:38:10
查看原帖
测试点数据是否有问题?
1417545
HandsomeZhai楼主2024/11/2 13:35

使用以下代码读入数据

string s[N];
cin >> w >> h;
getchar();
for(int i=0;i<h;i++){
    getline(cin,s[i]);
}

样例可以过,但是提交WA了八个,AC了两个 使用以下代码读入数据

char s[N][N];
cin >> w >> h;
scanf("%d %d",&w,&h);
for(int i=0;i<h;i++){
    for(int j=0;j<w;j++){
      cin >> s[i][j];
  }
}

或者是

char s[N][N];
cin >> w >> h;
for(int i=0;i<h;i++){
	scanf("%s",&s[i]);
}

都能通过代码,于是我便怀疑是测试点数据有误 对getline进行优化如下

string s[N][N];
cin >> w >> h; 
string str="\n";
getline(cin,str);
for(int i=0;i<h;i++){
    getline(cin,s[i]);
}

这样写也能过,这更加验证了我对测试点输入有误的猜想,于是我将原来使用WA的getline代码,输入地图时在11 9后加了几个空格,输出就错了

于是我猜测,可能是测试点在输入地图长宽时在后面多打了几个空格,导致使用getchar()没有读入换行符,反而把空格给读进去了

2024/11/2 13:35
加载中...