以下程序哪错了?
编写一个函数fun,该函数对变量中的h保留两位小数,并对第三位采用四舍五入的方法
,规定h为正数。主函数不用去管它。。
请高手指出我以下程序中的错误。谢谢
#include <stdio.h>
#include <conio.h>
float fun ( float h )
{ int m;
float n;
m=(int)(h/0.01);
n=h-(double)m;
if(n>=0.5) h=m/100.0;
else h=(m+1)/100.0;
return h;
}
main( )
{
FILE *out;
float a;
clrscr();
printf ( "Enter a: ");
scanf ( "%f", &a );
printf ( "The original data is: ");
printf ( "%f \n\n", a );
printf ( "The result : %.2f\n", fun ( a ) );
out=fopen ("out.dat", "w");
fprintf (out, "%.2f", fun ( 3.14159 ) );
fclose (out );
}
----------------解决方案--------------------------------------------------------
n=h-(double)m;
结果是负的
若h=1.234
m=(int)(h/0.01);
m则为123
n=1.234-123
----------------解决方案--------------------------------------------------------