问玄关
  • 板块灌水区
  • 楼主hkl99
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/12/15 19:20
  • 上次更新2024/12/15 22:24:59
查看原帖
问玄关
770439
hkl99楼主2024/12/15 19:20

今天遇到了一个奇怪的问题,

我做了一道题,其中要输入字符,我用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分,有没有大佬告诉蒟蒻这是为什么

2024/12/15 19:20
加载中...