1. 程式人生 > >C語言如何進行取整

C語言如何進行取整

    C語言有以下幾種取整方法: 
    1、直接賦值給整數變數。如: 
    int i = 2.5; 或 i = (int) 2.5; 
    這種方法採用的是捨去小數部分,可以用於你的問題。 
    2、C/C++中的整數除法運算子“/”本身就有取整功能(int / int),而下面介紹的取整函式返回值是double。整數除法對正數的取整是捨去小數部分,可以用於你的問題。但是整數除法對負數的取整結果和使用的C編譯器有關。 
    3、使用floor函式。floor(x)返回的是小於或等於x的最大整數。如: 
    floor(2.5) = 2 
    floor(-2.5) = -3 
    4、使用ceil函式。ceil(x)返回的是大於x的最小整數。如: 
    ceil(2.5) = 3 
    ceil(-2.5) = -2 
    floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函式可以用於你的問題。 
     
    hyh
的意見: 
    int x,a,b,c,d; 
    a=x/1000; 
    b=x%1000/100; 
    c=x%100/10; 
    d=x%10; 
     
    郭麗: 幾位專家解釋的floor和ceil兩個函式是不是隻能在 tc 2.0中適用,我在vc++中試過了,不認這個函式,是不是還要包括一個什麼特殊的標頭檔案啊?請各位專家指教,我是新手。謝謝了 
    :這兩個函式在VC++中也可以使用,但使用時需要包含math.h檔案。可以在程式的開始新增如下程式碼: 
    #include <math.h> 

相關推薦

C 語言數值

取整 預設情況下 // 丟棄小數點後面的值,結果為正數時可以認為是向下取整;結果為負數時取值結果和編譯器相關 int c = (a / b); 除此之外還有兩個函式可以實現向上取整或向下取整 // ceil 可以理解為向正方向取整。如 3.5 取整為 4

C語言如何進行

    C語言有以下幾種取整方法:      1、直接賦值給整數變數。如:      int i = 2.5; 或 i = (int) 2.5;      這種方法採用的是捨去小數部分,可以用於你的問題。      2、C/C++中的整數除法運算子“/”本身就有取整功能(int / int),而下面介紹的取整

C語言小結--三個數中的中間數

今天遇到一個問題,求三個數中的中間數。 我的思路是:先求兩個數中的最小數,然後把這個最小數和另一個數求最大數,這樣就取出了中間數。 求最大數和最小數的巨集定義如下: #define MAX(a, b) (((a) > (b) ) ? (a) : (b)) #defi

如何用C語言進行蛇形陣列填空

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int a[20][20]; int n,i = 0; memset(a,0,s

在numpy中如何對array中的每一個元素進行

【時間】2018.11.08 【題目】在numpy中如何對array中的每一個元素進行取整 概述 在numpy中對array中的每一個元素進行取整,可以使用np.trunc()、np.floor() 、np.ceil()、np.round()分別實現向0方向取整、向下取整、向上取整以及四

C/C++的截斷例項

在C/C++中7%(-4)=?,(-7)%4=?,(-7)%(-4)=? C/C++的除法採用向零取整,而不是上取整或下取整。向零取整即向0方向取最接近精確值的整數,換言之就是捨去小數部分,因此又稱截斷取整。對負數取模問題,應先求出二者的商,再使用公式【餘數=被除數-商×除

C語言進行順序表的實現

在C語言的學習中,資料結構中的線性資料結構分為順序表和連結串列,今天就簡單的實現一下靜態順序表。 首先是標頭檔案的實現: SeqList.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include <stdio.h&g

C語言無符號型轉換字串,字串轉換無符號

char* UInt32toStr(unsigned int n) {     char buf[10] = "";   static char str[10]="";   unsigned int i = 0;   unsigned

為什麼 Python被Google選為TensorFlow的開發語言呢?使用 Python比C++語言進行機器學習有什麼優勢?

其實TensorFlow大部分核心並不是用Python編寫的 :它是高度優化了C++和CUDA(Nvidia用於程式設計GPU的語言)的組合。 相反,通常它是使用了Eigen (高效能C ++和CUDA庫)和NVidia的cuDNN (用於NVidia GPU的非常優化的D

c語言_值範圍】int long longlong

mark unsigned int 0~4294967295  int -2147483648~2147483647 unsigned long 0~4294967295long -2147483648~2147483647long long的最大值:92233720368

C語言中的型溢位和移位溢位

1 整型溢位 原文連結:https://coolshell.cn/articles/11466.html     1.1 無符號整型溢位和有符號整型溢位    對於unsigned整型溢位,C的規範是有定義的——“溢位後的數會以2^(8*sizeof(type))作模運

c語言地址解析

定義:int a[2],*p =a;表示a[1]的地址有p+1,a+1,++p 我試了一下a++怎麼不行,查了之後說是 參考:http://blog.csdn.net/lyn_bigdream/article/details/8181850 還有逗號運算子的級別是最低的

lua 和 C 語言進行互動 —— 如何傳遞table

方法1: 採用 lua_pushstring/lua_pushnumber 傳遞key、value,然後通過 lua_settable 設定 table 中的kv對,like this: lua_pushnumber(L, 1); lua_pu

c語言一個矩陣的最大值及其下標

思想:將矩陣看做一個二維陣列,用scanf()函式輸入矩陣,將陣列首位設定為最大值max,將max與陣列中數按順序兩兩比較,更新max,比較到最後一位得到最終max。void main(){    int a[3][4],i,j,max,max_i,max_j;    pri

單鏈表的基本操作(C語言)//以型為例

        單鏈表與陣列相似,但是單鏈表堆記憶體的運用更加的方便,能夠充分的利用零散的記憶體,在中間新增或者刪除一個或多個元素時不需要像陣列一樣移動大量的元素。單鏈表的操作中,涉及到單鏈表元素變化的許耀中指向指標的指標操作。        下面是單鏈表的兩種建立方式以及其

C語言進行陣列元素逆序

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<windows.h> void fun(int *a

C語言中各種型型別所佔位元組數

平臺: 64位編譯器+LINUX+Gcc #include<stdio.h> main() { char a; char* b; short int c; int d; unsigned int e

Visual Studio 2019使用C語言進行websocket程式設計

一直在寫C#程式碼好多年不寫C語言程式碼了,記錄一下之前某個專案裡用C寫的一個websocket服務,用C的優勢是寫的東西體積小效能高,但是寫業務的話還得用C#、Java之類的語言,不然會折騰死人。。。   用Visual Studio新建一個C++(因為不能直接建C語言專案)專案,我演示就建立一個

計算機二級-C語言-程式修改題-190114記錄-對型變數進行餘操作可以取得各個位上的值。

//給定程式中fun函式的功能是:從低位開始取出長整形變數s中奇數位上的數,依次構成一個新的數放在t中。高位仍在高位,低位仍在低位。例如:當s中的數為7654321時,t中的數為7531。 //重難點:函式傳遞的形參和實參型別要一致。對整型變數進行取餘操作可以取得各個位上的值。 1 #includ

C語言型溢位問題 int、long、long long值範圍 最大最小值

《C和指標》中寫過:long與int:標準只規定long不小於int的長度,int不小於short的長度。 double與int型別的儲存機制不同,long int的8個位元組全部都是資料位,而double是以尾數,底數,指數的形式表示的,類似科學計數法,因此double比i