全部问题 > 当前问题

亲们,四舍五入保留两位小数,这样的变成为什么不可以?int n;n=(int)(h*100+0.5);return n/100.0;求解答,谢谢

#include <stdio.h>
float fun (float  h)
{
int  n;
n=(int)(h*100+0.5);
return  n/100.0;
}

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( );
}

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) ;
}

 

希望在拐角 2015-8-24 16:40:52

共 9 个回答

最佳答案

祁老师 2015-8-24 16:47:10

你这种方法是可以的  编程题方法比较多比较多变  题目只给出了一种答案 所以你的这种方法会报错 

赵雨豪 2015-8-24 16:47:12

你代入数字算一下吗,代入 1234.567的话,1234.567*100=123456.7,123456.7+0.5=123457.2;123457.2/100.0=1234.57

嘿嘿大人 2015-8-24 16:54:01

我觉得你得答案是正确的,但是系统它规定了一种,毕竟不是人,不会变通,只能用它的答案

希望在拐角 2015-8-24 17:04:24

回复 赵雨豪:谢谢

希望在拐角 2015-8-24 17:04:45

回复 嘿嘿大人:恩恩,谢谢

希望在拐角 2015-8-24 17:05:04

回复 祁老师:谢谢

嘿嘿大人 2015-8-24 17:05:45

回复 希望在拐角:不谢,我也是被这个评分系统坑过的,嘿嘿,对于你简直是感同身受,嘿嘿

希望在拐角 2015-8-24 17:16:38

回复 嘿嘿大人:恩恩,加油

嘿嘿大人 2015-8-24 17:16:59

回复 希望在拐角:恩啊,加油,嘿嘿

问题来自: 编程题真题