键盘输入x的值,根据公式计算并输出x和y的值,要求用switch语句完成,按照以上程序为什么输出y的值不对呢

img

键盘输入x的值,根据公式计算并输出x和y的值,要求用switch语句完成,按照以上程序为什么输出y的值不对呢

y=1.0/(1+x);

因为你的x是整形 ,23/2 =11,所以走default ,1/(11+1),最后结果整形就是0,如果输出小数需要强转 y=1.0/(x+1)

整型数除法不会保留小数的,所以需要转换一下类型。
y=1.0/(x+1);
或者 y=(double)1/(x+1);