给自己看
今天在写浙大版《数据结构学习与实验指导(第2版)》题目集-基础实验4-2.1 树的同构的时候
Q:关于sample 1一直在报错,但是仔细检查逻辑确实没问题,然后在dev c++里面逐步运行,发现scanf("%c %c %c",&x,&y,&z);出现了问题,有些地方读入的是\n 而不是我所需要读入的字符。
A:在网上搜索一番关于scanf的读入后发现,%d等数据遇到空格或者回车的时候,会直接略过不读入,但%c并不会直接省略而是当成字符读入,所以在此题读入过程中应该采取
#include<stdio.h>
int main(void)
{
int i,n;
char x,y,z;
scanf("%d\n",&n);//%d
for(i=0;i<n;i++) {
scanf("%c %c %c\n",&x,&y,&z);//\n%c %c %c
}
return 0;
}
//或者写成空格
#include<stdio.h>
int main(void)
{
int i,n;
char x,y,z;
scanf("%d",&n);
for(i=0;i<n;i++) {
scanf(" %c %c %c",&x,&y,&z);
}
return 0;
}
除了%c,其他转换说明都会自动跳过待输入值前面的所有空白,如若在"%c"前面添加空格" %c",则%c会从第一个非空白字符开始读取