C语言问题,下面的程序中,为什么b的值输不出来?

#include "stdio.h"
main()
{char a,b;
a=getchar();scanf("%d",&b);
a=a-'A';b=b*2;
printf("%c%c\n",a,b);

}

因为b * 2 所对应的ASCII可能是没有图像的.

如果把 printf("%c%c\n",a,b);
改成 printf("%c%d\n",a,b);

在去ASCII表找 b 的值,你看是什么图形。

或者不用改直接讲b 赋值为33,会输出B,因为B的值为66追问

我输入的是B33,但是只有一张笑脸,没有输出B,为什么?

追答



 可能和你的编译器有关 

追问

啊?那怎么办?

追答

你是要画图还是什么的, 只是显示而已,对程序而言值正确就行

追问

不是在画图,目前还在学习C语言,所以不懂这个问题是怎么回事。。

追答

那就无所谓了,其实不显示也不代表错。

追问

这是编译器不同的原因吗?

追答

应该是的,你看我的编译器不就输出了B吗

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-06
#include "stdio.h"
main()
{char a,b;
a=getchar();scanf("%c",&b);///这里类型不对
a=a-'A';b=b*2;
printf("%c%c\n",a,b);
printf("%xx%c\n",a,b);//看看ASCII码

}本回答被网友采纳
第2个回答  2012-09-06
b前后字符类型不一致
第3个回答  2012-09-06
%d 类型使用错了
%d 是int
%c 是char

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网