关于getchar和scanf的问题。

关于getchar和scanf的问题。charc;inta;c=getchar();a=c>=48&&c<=57?c2-‘0‘:c;printf("%d",a*10);输... 关于getchar和scanf的问题。char c;
int a;
c=getchar();
a=c>=48&&c<=57?c2-‘0‘:c;
printf("%d", a*10);

输入4后的输出结果是什么?为什么?
如果输入的部分改为 scanf("%c", &c); 呢?
展开
 我来答
金色潜鸟
2018-06-26 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5668万
展开全部
c=getchar(); 或 scanf("%c", &c); 拍入4时,输入的 4 是 字符 '4', 它的实际数值 是 ASCII 码值 52, 比 ASCII 字符 '0' 编码值 48 大 4。
输入 4, c=52, 所以条件:
c>=48 && c<=57 ? 为真。于是 a 得到 c-'0' ,也就是 4。
printf("%d", a*10); 输出 4*10, 打印出 40。
====
如果是: scanf("%d",&c); 注意格式 用的是 %d 不是 %c, 拍入4时, c 得到数值 4 。
c>=48 && c<=57 ? 条件不满足,为假 , 于是 a 得到 c ,也就是 4.
printf("%d", a*10); 输出 4*10, 打印出 40。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式