c语言问题,为什么输出不是2

如题所述

类型不兼容:
s[]属于字符型数组,s[1]为字符型变量,float a为浮点型变量,将字符型变量赋值给浮点型变量后精度减少,而且你输入的是字符串“C2H5”,实际上s[1] = '2' = 48 + 2 = 50,你得到的结果肯定就不是2了,至于为什么是5,你需要再看看《计算机组成原理》,这就是一个浮点型数据存储方式的问题,要想得到2你需要像下面这样:

char s[4];
char a;
scanf("%s",s);
a = s[1];
printf("%c\n",a);
温馨提示:答案为网友推荐,仅供参考
相似回答