一、題目描述
請編寫一個函數float fun(double h),函數的功能是對變量h中的值保留兩位小數,并對第三位進行四舍五入(規定h中的值為正數)。(更好的閱讀體驗,請移步我的個人部落格)
二、分析解答
此題主要考察浮點數的運算,涉及到浮點數的精度,寬度等知識。
代碼如下:
#include<stdio.h>
float fun(double h){
long temp;
/*
h*1000是把小數點後三位移到整數部分,+5是為了看是否能夠進位。
/10是保留兩位小數。然後指派的時候會預設強轉把小數去掉了。
傳回的時候将temp/100是為了保留兩位小數點,這時候就實作了四舍五入。
其他的舍入方式可參考這個
*/
temp = (h*1000 + 5)/10;
return (float) temp/100;
}
int main(){
double h;
float result;
scanf("%lf",&h);
result = fun(h);
printf("k=%.2f \n",result);
return 0;
}
結果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwgDOxAzM0ATMyAjNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)