函式介面定義:
double Round( double x, int n );
裁判測驗程式樣例:
# include <stdio.h>
double Round(double x, int d);
int main(void)
{
int n;
double x;
scanf("%lf%d",&x,&n);
printf("%g\n",Round(x,n));
return 0;
}
/* 請在這里填寫答案 */
輸入樣例:
在這里給出一組輸入。例如:
123.456 2
輸出樣例:
在這里給出相應的輸出。例如:
123.46
uj5u.com熱心網友回復:
這個對嗎我咋運行不了
下面給我來個這 id returned 1 exit status
請問這該怎么辦
uj5u.com熱心網友回復:
浮點型轉整型時,是去掉小數部分(也可以稱為向零求正)如:
(int)1.6 -> 1
(int)1.3 -> 1
當浮點型為正數時加上0.5
(int)(1.6+0.5) = (int)2.1 -> 2
(int)(1.3+0.5) = (int)1.8 -> 1
不做理論證明直接說結論 當浮點型為正數時,浮點型+0.5 在轉為整型就相當于四舍五入
當浮點型為負數的時候就需要 -0.5
具體代碼
#include <STDIO.H>
int Fun_To(float n)
{
float a=0.5f;
int sign= *(int*)&n & 0x80000000; //取正號或負號
// 0x3F000000 是浮點型的0.5 這里直接用16進制表示了
int h= 0x3F000000 | sign; // 根據符號轉為 -0.5或 +0.5
return n + *(float*)&h; // 浮點型加 +/- 0.5
}
int main(int argc, char* argv[])
{
printf("%d\n",Fun_To(-3.6));
return 0;
}
uj5u.com熱心網友回復:
等級
勛章Blank
抱歉 沒有仔細看題目
如果你愿意的話 ,
還是可以用上面的方法
用浮點型 乘以 10^n,
四舍五入后
在除以10^n
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268942.html
標籤:C語言
上一篇:二叉排序樹的創增查(代碼簡練)
下一篇:關于聲卡采集并顯示波形的問題
