关于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); 呢? 展开
int a;
c=getchar();
a=c>=48&&c<=57?c2-‘0‘:c;
printf("%d", a*10);
输入4后的输出结果是什么?为什么?
如果输入的部分改为 scanf("%c", &c); 呢? 展开
1个回答
展开全部
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。
输入 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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询