关于#c语言#的问题,请各位专家解答!

int a;
scanf("%d",&a);
int foot,inch;
float b=0;

** b=a/100.0;**请问这个地方100和100.0为什么有区别

变量a为int型,变量b为float型;
int和int计算返回结果为int,而int和float计算返回结果为float;
这里100.0为float,和a计算后结果为float;
如果是100,则a/100计算结果为int,可能会有精度损失。
例:假如b=100/3.0,结果为b=33.333;但如果b=100/3,结果为b=33.0

100是个int型的常量
而100.0是double型的常量
a也是int型,两个int型做加减乘除,结果也是int型

理论上,这叫自动类型转换,会将数据类型,从低优先级往高优先级自动转换。
如果结合理论,会让你记忆更深刻