发布网友
共4个回答
热心网友
晕
还有人回答是为了好看
是这样的```在不加空格的情况下"%d%c%c",&a,
&b
,
&c
当你输入“3空e空f”
你第一个是整形
自然会把你输入的数字给第一个a,你输入第二个是空格,会把这个空格当成字符赋值给b
你输入第三个是e,会把e赋值给c
这样程序就认为已经完成了赋值,而不会理会后面的"空f"
结果a=3,b='
',c='e'
可以这样测试
#include
long
main()
{
long
a;
char
b,c;
scanf("%d%c%c",&a,
&b,
&c);
//输入“3空e空f”
printf("%c\n",c);
//输出变量c为'e'
return
0;
}
热心网友
C语言就是这么要求的,scanf函数使用空白字符分割输入的数据,空白字符包括空格、换行、tap。
热心网友
不加空格的话就要再输完int型的值后回车,再输入char型的值
加空格就是把回车换成空格而已
热心网友
可能是因为加了空格,输出比较好看(字母和数字被隔开),,编代码时并不一定要加空格的