请教大家一个程序,输出时好像if没有运行,直接输出的no swap
#include"stdio.h"main()
{
int a,b,t;
char c;
printf("请输入一个数a=");
scanf("%d", &a);
printf("请输入一个数b=");
scanf("%d", &b);
printf("请输入一个字符c=");
scanf("%c", &c);
if(c=='y'){
t=a;
a=b;
b=t;
printf("a=%d b=%d", a,b);
}else{
printf("No swap");
}
}
是判断一个变量是否等于字符‘y’,若是交换a,b值 这个问题我也遇到过,同求大神解答。
我的感觉就是在输入b然后敲击回车的时候,回车这个字符留在了scanf的类似缓冲区的地方,然后c就直接读取回车了。我之前遇到类似问题就在读取b之后加一句getchar();一般就能解决这种问题。 光脚的部长 发表于 2016-5-28 21:37
这个问题我也遇到过,同求大神解答。
我的感觉就是在输入b然后敲击回车的时候,回车这个字符留在了scanf的 ...
刚问到了
这是键盘缓存冲突问题。。加上 fflush(stdin);即可
页:
[1]