请编一个函数float fun (double h),函数的功能是对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如:若h值为8.32433,则函数返回8.32:若h值为 8.32533,则函数返回8.33。 注意

admin2013-06-12  27

问题 请编一个函数float fun (double h),函数的功能是对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。
   例如:若h值为8.32433,则函数返回8.32:若h值为 8.32533,则函数返回8.33。
   注意:部分源程序给出如下。
   请勿改动主函数main 和其他函数中的任何内容,仅在函数。fun 的花括号中填入所编写的若干语句。
   试题程序:
   #include <stdio. h>
   #include <conio. h>
   float fun (float h )
   {
   }
   main()
   {
     float a;
     clrscr ();
     printf ("Enter a: ");
     scanf ("%f", &a);
     printf("The original data is :  ");
     printf("%f\n\n", a) ;
     printf("The result: %f\n", fun(a) );
   }

选项

答案float fun (float h) { long t; t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当十对h中的第三位小数进行四舍五入 除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/ return (float) t/100; /*除以100,保留2位小数*/

解析 注意本题要求h的值真正发生了四舍五入,而不是为了输出,即不能用printf(“%7.2f”,h)来直接得到结果。由于单精度数h乘以1000后再加5,此时相当于对h中的第三位小数进行四舍五入,再将其赋给一个长整型数时就把第三位小数后的数全部截去。注意在return 中要将其中一个数转成浮点型数。
转载请注明原文地址:https://kaotiyun.com/show/UrJp777K
0

最新回复(0)