今天遇到了一个奇怪的问题,
我做了一道题,其中要输入字符,我用scanf输入
输入代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
char a[1010][1010];
int main(){
scanf("%d",&n,&m,&k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%c",&a[i][j]);
while(1){
if(a[i][j]!='\n'&&a[i][j]!=' '){//排除换行和空格
break;
}
else{
scanf("%c",&a[i][j]);
}
}
}
}
// 测试输出
// for(int i=1;i<=n;i++){
// for(int j=1;j<=n;j++){
// printf("%c ",a[i][j]);
// }
// printf("\n");
// }
return 0;
}
在本地编译器上输入输出是正常的,但是提交到评测机上输入就有问题了,我发了一个帖子问人,经过修正,把输入代码改成了如下代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
char a[1010][1010];
int main(){
scanf("%d",&n,&m,&k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
return 0;
}
输入就没有问题了,然后从0分变到了100分,有没有大佬告诉蒟蒻这是为什么