请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。 例如:实型数为1234.567,则函数返回1234.572000; 实型数为1234.564,则函数返回1234.562000。 注

admin2020-06-16  15

问题 请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
    例如:实型数为1234.567,则函数返回1234.572000;
    实型数为1234.564,则函数返回1234.562000。
    注意:部分源程序存在文件PROGl.C文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
float fun(float h)
{
}
main()
{  float a;void NONO();
    printf  (“Enter a:  ”);  s canf
(“%f”,&a);
    printf(“The original data is:”);
    printf(“%f\nkn”,a);
    printf(“The result:%f\n”,fun
(a));
    NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
  int i;
  float a ;
  FILE *rf,*wf;
  rf=fopen(“in.dat”,“r”);
  wf=fopen(“out.dat”,“w”);
  for(i=0;i<20;i++)  {
    fscanf(rf,“%f”,&a);
    fprintf(wf,“%f\n”,fun(a));
    }
    fclose(rf);
    fclose(wf);
}

选项

答案long w; w=h*1000+5; return(float)w/1000;

解析 该程序功能是进行四舍五入。其中,通常求实数x保留m位小数,首先将x扩大10(m+1)倍,扩大后的x加上5后,进行截取判断,最后进行恢复。
   [解题思路]
    进入fun函数,根据前面的分析:
    本题可以分解为,把一个浮点数截成只带两位小数的算法和将小数点后第三位四舍五入的算法。其中,四舍五入,如果值大于5那么加上5就会进位;反之,如果小于5,加上5就不会进位,所以在扩大后的值加上5,实现四舍五入的截取。
转载请注明原文地址:https://kaotiyun.com/show/SZCp777K
0

最新回复(0)