㈠ c語言編程 、對輸入的任意一個數按照四捨五入法取整。編寫完整程序,要求在主函數中輸入任意一 個數,
#include
int
round1(float
a)
{
return
(int)(a+0.5);
}
int
main()
{
float
x;
printf("請輸入一個浮點數:");
scanf("%f",&x);
printf("四捨五入的結果是:%d",round1(x))
;
return
0;
}
㈡ C語言問題,這里怎麼實現四捨五入的啊
假定一個數字x值是10.456,那麼保留兩位,第三位四捨五入的方法就是先將x乘以100,變成1045.6,然後加上0.5,得到1046.1,然後去除1046.1的小數部分(也就是強制轉為int),得到1046,再用1046除以100.0就得到最終的10.46,寫出來也就是
x=(int)(x*100+0.5)/100.0
㈢ C語言中關於四捨五入的問題。
如果把s=((int)(s*10000+0.5))/10000.0
去掉
再printf("%.4f",s);
輸入3.1415926
那麼最後結果
是
3.1415
不會是3.1416
cpu沒有四捨五入的功能
只能靠編程實現
s=((int)(s*10000+0.5))/10000.0
就是
用啦對小數點後第4位實現四捨五入的
你可以驗證一下
㈣ C語言怎麼四捨五入
利用取整。
比如 四捨五入到千分位,可以
(int)(x*1000+0.5)/1000.0
十分位(int)(x*10+0.5)/10.0
其他類似,只改變其中倍數的值即可。
㈤ c語言編程~如何四捨五入
如果只是要求輸出結果「四捨五入」,只要通過輸出格式符控制即可。
例如:
double pi=3.1415926;
printf("%.4lf\n",pi);
可得輸出為3.1416。
printf("%.2lf\n",pi);
可得輸出為3.14。
如果是要把變數本身的值四捨五入到4位小數,則可以這樣處理:
double pi=3.1415926;
pi=((int)(pi*10000+0.5))/10000.0;
㈥ c語言怎麼實現四捨五入
# incloud <stdio>
int main(void)
{
float a ;
scanf(「%f」,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (「%0.3f」,a);
return 0;
}
(6)c語言編程四捨五入擴展閱讀:
其他方法實現四捨五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮點數與0比較的函數,假設它存在。返回值與strcmp相同。
㈦ c語言中怎麼四捨五入
設 float x ; int y ; 則有y=(int)(x+0.5)>(int)x?(int)x+1:(int)x進行上述運算後,y 的值就是 x 四捨五入的結果。
㈧ c語言中如何進行四捨五入,求詳細解釋!!謝謝!
方法一:
#include<stdio.h>
int main()
{
double d1,d2,d3;
d1=-3.1415926;
d2=(int)(d1*10+0.5)*0.1;
printf("d1=%f,保留一位小數的結果為:%.1f ",d1,d2);
d3=(int)(d1*1000+0.5)*0.001;
printf("d1=%f,保留三位小數的結果為:%.3f",d1,d3);
總結四捨五入保留n為小數
(int)(x*10的n次方+0.5)*10的負n次方;
其次這個方法對負數無效;如果非要用可以先取正數部分算,最後加上負號
}
方法二:
使用round()函數。
#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}
(8)c語言編程四捨五入擴展閱讀:
C語言編寫注意事項:
1、%運算符不能應用與float或double類型。
2、char類型轉換為int型時, 無法判斷它是signed還是unsigned.這樣其結果有可能為負數, 因此轉換時盡量指定signed和unsigned限制符。
3、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
4、三元運算符"?:" 第一個表達式的括弧不是必須的,但是由於三元表達式的優先順序非常低,我們還是將第一個表達式用()括起便於閱讀和理解。
5、C語言中可以使用遞歸 (即函數調用自身函數), 其不節省儲存器開銷也不加快執行速度, 只是使程序緊湊便於理解。
㈨ C語言編寫四捨五入函數
floatnum=3.14159
floatf;
f=((int)(num*10000+0.5))/10000.0;
過程如下31415.9+0.5=31416.4
取整31416然後除以10000.0
隱式轉換為float3.1416
㈩ c語言四捨五入
#include<stdio.h>
main()
{
double a;
printf("清輸入一個小數 ");
scanf("%lf",&a);
a=(int)(a*100+0.5);
a=a/100;
printf("輸出的四捨五入結果是 %.2f",a);
}
這樣就對了,輸入格式有錯