回复 嘿嘿大人:
#include <stdio.h>
float fun ( float h )
{
float w,t,e;
int r;
w=h*1000;
r=w;
r=r%10;
e=r*0.1;
if(r>=5)
h=h*100+1-e;
else
h=h*100-e;
h=h/100;
return h;
}
main( )
{ float a;void NONO ();
printf ("Enter a: "); scanf ( "%f", &a );
printf ( "The original data is : " );
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
}
回复 二级必过!!!:你的想法是对的,但是你知道什么叫四舍五入么?四舍五入之后保留位后面要全部是零,这才叫四舍五入,你只是把保留位后面的一位变成零这不叫四舍五入,能理解?
回复 二级必过!!!:像你这么写还不如这样
float fun ( float h )
{
float w,t,e;
int r;
w=h*1000;
r=w;
r=r%10;
if(r>=5)
h=h*100+1;
else
h=h*100;
r=h;
h=r/100.0;
return h;
}
还简单点,虽然和答案不一样也是零分也,嘿嘿
回复 嘿嘿大人:
满分:
float fun (float h )
{
long t;
t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当于对h中的第三位小数进行四舍五入
除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/
return (float)t/100; /*除以100,保留2位小数*/
}
我觉得答案也只是把保留位后面的一位变成零这不叫四舍五入。
回复 二级必过!!!:你自己不是在注释写了的么?
t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当于对h中的第三位小数进行四舍五入
除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/