c语言中的小问题

#include<stdio.h>
void main()
{
char a,b;
scanf("%c",&a);
scanf("%c",&b);
printf("%c",a);
printf("%c",b);
}
如上述程序,为什么我无法连续输入2个字符(比如输入:a空格再a空格)而是在输入第一个a空格后它就输出了
不要告诉我改成如下程序,我问的是原因不是怎么改!
#include<stdio.h>
void main()
{
char a,b;
scanf("%c%c",&a,&b);
printf("%c%c",a,b);

}
能否再详细点,为什么不执行第2个scanf语句?

你输入的第一个字符a能正确读取,但当你输入空格是被存入b中,所以scanf执行完毕,便输出了
第2个程序也是同样的问题,应该这样
#include<stdio.h>

void main()
{
char a,b;
scanf("%c",&a);
scanf("%c",&b);
scanf("%c",&b);
printf("%c%c",a,b);
}

第2条scanf语句用于将空格先存入b中再将你接下来输入的字符将先前的空格覆盖。。。你试试
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-11-16
#include<stdio.h>
void main()
{
char a,b;
scanf("%c %c",&a,&b);//在两个%c中间加个空格
printf("%c%c",a,b);

}

如果换成scanf("%c,%c",&a,&b);
那么你输入:a,b
那么输出结果就为ab
第2个回答  2009-11-16
scanf不支持输入空格,遇空格就当输入结束
第3个回答  2009-11-16
是不是你工具有问题啊
第4个回答  2009-11-16
空格也是字符

c语言几个小小的问题 高手帮个忙
4. printf("%8.4g\\n",b); 这句输出8756,%g表示按%e或者%f输出,8.4中8表示数据宽度是8位,4表示只输出4个有效位,所以除8756之外,其他位都被忽略了。printf("%12g,%g\\n",pi,n);这句有问题,编译错误,因为这里的n没有定义。

c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...

c语言小题目。急急急
五、编程题 1. 编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)main(){int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a...

C语言弱智问题! 请帮忙解答!1个小时之类!
(a+b+c));printf("3个数的乘积:%d",(a*b*c));printf("3个数的平均值:%d",(a+b+c)\/3);}

求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

c语言常见问题有哪些?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=...

问几个C语言里很多人没注意过的问题
说实话要是这几个问题只要理解了C语言的人,怎么可能不明白。很多人没注意,说明他们还没学懂。当然我也不是在自夸,我也是初学者,可是我还是为楼上几位悲哀。1.你要知道程序在内存中的结构,有栈区、堆区、文字常量区、全局变量区、函数区,使用 char* a = "xxx";这样的语句初始化指针a,"...

几个简单的c语言小问题 解决一题给十分
一。 d=20 if(a) d=d-10; a=0 if条件语句为假不执行 else if(!b) 不执行 if(!c) d=15; else d=25;是 else if(!b)下的语句 也不执行 二。 x=1 y=z=x; 赋值语句 x先赋给z 再赋给y x=y==z 先判断条件语句 y==z 是真 的...

C语言 比较大小里的一个小问题
在C语言中,使用scanf函数读取整数时,格式控制字符串中的%d之间需要使用空格隔开输入的两个数,而非逗号。当按照格式控制字符串%d和%d之间没有添加任何字符进行输入时,输入数据之间应该使用至少一个空格来分隔。例如:正确的输入方式是:10 20,而不是使用逗号,即:10,20。这是因为C语言的scanf函数在...

c语言编程问题,求高手解答(高分)
你的程序没有大的问题,可以执行,只是以下几个小问题:一、第一行包含的文件不存在,这一行应该删除。二、定义了argc、argv两个变量没有使用,编译会有警告,可以删除他们或者不管,最好改为:int main()三、scanf输入n和k的时候,中间有个逗号分隔,这样输入的时候会麻烦,最好改为:scanf("%d%d...

相似回答