全部问题 > 当前问题

以下函数是对实型数保留两位小数,第三位四舍五入,问题出在哪呢?求修改!

float fun ( float  h )

{int a,b,t;

a=(int)(h*1000);

t=a%10;

if(t>=5)

a=a/10+1;

else a=a/10;

b=(double)a /100;

return b;


}


积攒下一个天亮 2016-1-23 15:23:38

共 1 个回答

嘿嘿大人 2016-1-23 16:12:14

这个自定义函数要求返回的返回值类型是float,而你返回的是b,b是int类型,所以出错了:

float fun ( float  h )//红色部分是返回值规定的类型

{int a,t;

a=(int)(h*1000);

t=a%10;

if(t>=5)

a=a/10+1;

else a=a/10;

h=a /100.0;//除法符号两边如果都是整形则商为整形,a是整形,所以将100写作100.0得到的商就是浮点型了

return h;


}


问题来自: 编程题真题