c語言中如何精確判斷數是否等於零

2022-06-10 05:37:04 字數 6644 閱讀 2676

1樓:

//1整型

int i=2;

if(i==0)

printf("等於零");

else

printf("不等於零");

//2浮點型

float i=2;

if(fabs(i)<1e-6)

printf("等於零");

else

printf("不等於零");

2樓:染_馥

float a;

if(a==0.0)

printf("a is zero");

else printf("a isnot zero");

3樓:匿名使用者

1. 整型:

int ntest = 0

if(ntest == 0) if(ntest != 0)2. 浮點型:

#define epistion 0.000001 /*精度*/float ftest= 0.0

if((ftest >= -epistion) && (ftest <= epistion))

3. bool型別:

bool btest = false

if(!btest) if(btest)4. 指標型別:

int *p = null

if (null == p) if(null != p)

c語言中如何判斷乙個數是否是質數?

用c語言程式判斷乙個浮點型的數是否為零????

4樓:匿名使用者

浮點型,由於精度關係(float6位),最小分辨0.000001,

當儲存乙個數時,只有六位是準確的,比如儲存0,可能在記憶體中的值為0.0000001321。。。。。

所以判斷浮點型的0值最好用fabs(i) < 0.000001

5樓:回頭一切都太遲

if(i-0.000001<=0.000001)printf

是else不是

6樓:匿名使用者

if(fabs(x)<1e-6)

printf("yes");

else

printf("no");

c語言判斷乙個數是否為整數

7樓:考元修龐裳

使用截尾函式可以驗證!

截尾函式是指將小數點後面的全部丟掉!

所以,如果是整數的話,那麼截去小數點後面的應該等於原來的這個數字;

否則,便不是整數!

截尾函式:trunc(x)

判斷:if

trunc(x)=x

then

……翻譯:如果x是整數的話……

望採納!

8樓:匿名使用者

以判斷n開根號後是否是整數為例

#include

#include

main()

9樓:凌亂心扉

方法1:

#include

#include

float x;

...if(fabs(x-(int)x)<1e-8)printf(「x是乙個整數\n」);

else printf(「x不是乙個整數\n」);

方法2:

int c=(int)b,d=(int)(b+0.999999)if(c==d)

printf(「是整數\n」);

else

printf(「不是整數\n」);

方法3:

float b;

...if(b-(int)b==0)

printf(「是整數\n」);

else

printf(「不是整數\n」);

方法4:

float b;

...if(b!=(int)b)

printf(「不是整數\n」);

else

printf(「是整數\n」);

10樓:育知同創教育

double x;

scanf("%f",&x);

if((int)x==x)

printf("%f是整數",x);

把所輸入的數強制轉換為整數,然後判斷是否跟原來相等。

11樓:顧神明

if(int)(n+0.9999999)==n)

printf("%d為整數",n);

12樓:

c中的sqrt函式引數為double型,返回也為double,沒有其它型別

13樓:匿名使用者

沒有這種函式的,c中是沒有的

14樓:匿名使用者

乙個數開根號後如果還是整數,那麼這個數必定是整數.#include \"stdio.h\"

#include \"math.h\"

main()

15樓:範韻楊凱復

你是想知道整型常量,整型變數獲取值的過程還是想知道庫函式當中如何判定輸入資料是整型?

ps:c語言是強型別語言,如果你想用庫函式輸入乙個資料,那麼該庫函式要麼是針對特定輸入型別使用的,就是說你輸入的資料必須是該函式能接受的,或者能夠強制轉換的,函式事先已經知道你會輸入何種型別。要麼在函式中會要求你指定輸入資料的資料型別,比如scanf(「%s」,s);

總之,你所要輸入的資料型別必須讓庫函式知道,而不能讓函式自己去判斷你輸入的資料可能是什麼型別。

c語言 關於判斷乙個浮點數是否等於0

16樓:風若遠去何人留

浮點數是近似值。 一般用精度判斷

比如 判斷是否為0 可以用

if(fabs(y)<1e-6)

這樣就可以認為是為0 了。

直接==會不正確的。

17樓:匿名使用者

樓上的都對,浮點數存在誤差,直接==不行。左偏右偏或不偏,不確定

18樓:聽不清啊

因為浮點數在計算機的的儲存和運算都會產生誤差,所以,程式中應該盡量避免直接比較兩個浮點數是否相等,而是改為判斷二個浮點數之差的絕對值若小於乙個很小的數(可自己設定)。條件滿足時,即可認為該兩個浮點數「相等」。

例如,要比較浮點數a與是否相等。

應該使用:

if(fabs(a-b)<1e-8)

printf("兩個浮點數是相等的");

c語言如何判斷乙個數是不是整數

19樓:聽不清啊

fabs(x-(int)x)<=1e-8

20樓:w心靜思遠

最近在備考計算機二級,對這個很熟悉,

使用int強制型別轉換,如果轉換後等於它本身,則這個數是整數,下面是我寫的乙個程式:

#include

main()

祝你學習愉快!

c語言程式設計中如何判斷乙個數是否為整數

21樓:匿名使用者

c語言判斷是否為整數,那麼只可能是判斷輸入的值,或者字串中的值,是否為整數。

因為一旦儲存在變數中,根據變數型別,要麼為整數,要麼為浮點數,是確定的。

一、判斷思路:

1、整數中,按十進位制計算,合法字元為0到9,另外在最初位置可以有符號,即+或者-。

2、對於輸入的值,可以先儲存到字串中,這樣轉換為判斷字串中是否為整數。

3、先判斷第乙個字元是否為+或者-, 如果是,則從第二個開始判斷,否則從第乙個開始判斷。

4、對每乙個需要判斷的字元,判斷是否在'0'到'9'之間,如果是則合法,否則非法。

5、一旦出現非法字元,說明不是整數。如果所有字元合法,那麼是整數。

二、參考**:

int is_int(char *s)//判斷s中是否為整數,如果是返回1,否則返回0.

return 1;//所有都是合法字元,返回1,表示為整數

}int main()

22樓:始蘭夢始睿

你是想知道整型常量,整型變數獲取值的過程還是想知道庫函式當中如何判定輸入資料是整型?

ps:c語言是強型別語言,如果你想用庫函式輸入乙個資料,那麼該庫函式要麼是針對特定輸入型別使用的,就是說你輸入的資料必須是該函式能接受的,或者能夠強制轉換的,函式事先已經知道你會輸入何種型別。要麼在函式中會要求你指定輸入資料的資料型別,比如scanf(「%s」,s);

總之,你所要輸入的資料型別必須讓庫函式知道,而不能讓函式自己去判斷你輸入的資料可能是什麼型別。

23樓:匿名使用者

int ret;

記錄scanf函式的返回值

if(ret!=2) //根據scanf函式的返回值,判斷輸出資料個數或者格式是否錯誤

24樓:匿名使用者

double x;

scanf("%f",&x);

if((int)x==x)

printf("%f是整數",x);

25樓:匿名使用者

這個提法不正確,「乙個數」是什麼概念?如果一塊記憶體中的資料可以解釋成乙個數,那這個數可以是整數,也可以是浮點數。如果你要判斷使用者輸入的數是整數還是浮點數,你只能用浮點數來儲存,然後判斷是否和自己強轉的整數形式相等。

26樓:

xiaoweidelg 應該問的是乙個數是否小數點後面全0。

bool isinteger(double d)

27樓:迷戀_哈哈

比如double x=2.75;

int y=(int)x;

if(x==y)就是正數

28樓:道初潛珉

你直接用int型不就得了,這樣是不會保留小數的...

29樓:欣悅神話

(x-(int)x)<=1e-8

30樓:匿名使用者

就像需要判斷蛇是不是有足一樣的問題

c語言怎麼判斷乙個數是不是整數

31樓:凌亂心扉

方法1:

#include

#include

float x;

...if(fabs(x-(int)x)<1e-8)printf(「x是乙個整數

\n」);

else printf(「x不是乙個整數\n」);

方法2:

int c=(int)b,d=(int)(b+0.999999)if(c==d)

printf(「是整數\n」);

else

printf(「不是整數\n」);

方法3:

float b;

...if(b-(int)b==0)

printf(「是整數\n」);

else

printf(「不是整數\n」);

方法4:

float b;

...if(b!=(int)b)

printf(「不是整數\n」);

else

printf(「是整數\n」);

32樓:聽不清啊

如果用實型變數x接收乙個數或通過計算得到乙個數後要知道它是不是整數,沒有很好的辦法。因為實數在計算機中不能準確地儲存,所以不能直接判斷兩個實型量(x,與表示整數的實型量,必須要同型別的量才能比較)是否相等,首先要明確能允許的誤差是多少。比如,一般情況當誤差的絕對值小於10的負8次方時我們可以認為兩個實數是相等的。

所以,要使用math庫。

#include

float x;

......

if(fabs(x-(int)x)<1e-8)printf("x是乙個整數\n");

else printf("x不是乙個整數\n");

33樓:王錚教授

其實嚴格意義上來說,你們都想複雜了。

我們應該從問題角度出發,根本不用函式。

接下來我用c++來說明,其實c也同理

#include萬能頭挺好的

int main()

34樓:匿名使用者

if(number%2==0||number%2==1)是整數; //number對2取模,餘數為0或1就是整數。

else 不是;

實際上,還可以在定義上取巧,比如說,把輸入數n設為float ,另有乙個 int m;

輸入n後,

m=n;//強制把n取整賦給m

if(n==m)就是整數了。

35樓:真忙得很

#include

int main(void)

這裡while(scanf("%d",&a)==1)代表如果輸入的是乙個整數就返回1並執行printf("輸入的是乙個整數「);如果不是就返回0,退出迴圈,並執行printf("輸入的不是乙個整數「);

c語言如何判斷整數,c語言判斷乙個數是否為整數

c語言判斷兩數相除結果是否為整數可採用模運算。是c語言提供的 模運算 符,如8 5表示8整除5,取其餘數,結果為3 c語言要求參與模運算子兩端的數,必須是整型類資料,如 char short int long,unsigned這些型別,不能是浮點型別資料。如,判斷乙個數除以100後是不是整數,該數是...

c語言中不等於使用什麼符號,C語言中不等於使用什麼符號?

c語言中的關係運算子不等於的符號是 的作用是檢查兩個運算元的值是否相等,如果不相等則條件為真。假設變數 a 的值為 10,變數 b 的值為 20,則 a b 為真。擴充套件資料 c語言中的其他關係運算子介紹 假設變數 a 的值為 10,變數 b 的值為 20 1 檢查兩個運算元的值是否相等,如果相等...

c語言中15等於多少,C語言中15等多少

答案為1 此為模運算子,又稱求餘運算子。需要注意的是 兩側必須是整型資料。求餘運算子 顧名思義就是求餘數,它的運算結果就是兩數相除得到的餘數。該題1 5 結果就是1 5的餘數,也就是1。1 5為求 1除以5的餘數 1除以5等於0餘1 所以1 5 1 c語言中1 5等多少 該題答案為1 此為模運算子,...