怎樣用c語言判斷數是不是整數怎樣用C語言判斷乙個數是不是整數

2021-03-06 22:33:22 字數 6456 閱讀 7512

1樓:聽不清啊

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

所以,要使用math庫。

#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.9999999)if(c==d)

//或者:

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

//整數和實數是不能直接比較的。

3樓:鄞青甕全

int(a)==a;

用int強制把要判斷的那個數轉換成整形,如果它們還相等···說明是整數···例如a=2.1的話int(a)就會等於2,而2.1!=2,所以不是整數···整數的話就會相等··

4樓:匿名使用者

if (b!=int(b))

5樓:俎茹上官思柔

對1取餘等於0則說明為整數

或者float a;

int b = (int) a;

if(a-b==0)else

怎麼用c語言判斷乙個數是否為整數(這個數是開平方出來的)?

6樓:

如果這個數是n,一般如是if(n==(int)n) printf("it is a integer.\n"); else printf("it is not a integer.\n");判斷就可以了。

但這不100%準確,因為同乙個整數用int表達和用double表達實際上是有差別的,所以當浮點數與整型數相差非常非常小時可能會誤判。

7樓:匿名使用者

因為實型和整型變數是不能直接比較的,要做一步型別轉換才能比較首先要明確允許

的誤差是多少。比如一般情況誤差的絕對值小於10-8時我們可以認為兩個實數是相等的。

**如下

#include

#include

main()}結果

8樓:聽不清啊

if(fabs(x-(int)(x+0.5))<1e-5)printf("%d是乙個整數",(int)(x+0.5));

這裡把它與相應整數的差小於0.00001,就視為它就是乙個整數。

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

9樓:匿名使用者

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

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

一、判斷思路:

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

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

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

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

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

二、參考**:

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

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

}int main()

10樓:始蘭夢始睿

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

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

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

11樓:匿名使用者

int ret;

記錄scanf函式的返回值

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

12樓:匿名使用者

double x;

scanf("%f",&x);

if((int)x==x)

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

13樓:匿名使用者

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

14樓:

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

bool isinteger(double d)

15樓:迷戀_哈哈

比如double x=2.75;

int y=(int)x;

if(x==y)就是正數

16樓:道初潛珉

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

17樓:欣悅神話

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

18樓:匿名使用者

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

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

19樓:考元修龐裳

使用截尾函式可以驗證!

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

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

否則,便不是整數!

截尾函式:trunc(x)

判斷:if

trunc(x)=x

then

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

望採納!

20樓:匿名使用者

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

#include

#include

main()

21樓:凌亂心扉

方法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」);

22樓:育知同創教育

double x;

scanf("%f",&x);

if((int)x==x)

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

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

23樓:顧神明

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

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

24樓:

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

25樓:匿名使用者

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

26樓:匿名使用者

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

#include \"math.h\"

main()

27樓:範韻楊凱復

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

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

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

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

28樓:匿名使用者

//結果是7744, 是88*88 = 7744先附上執行截圖附上程式, 偶樓主你加了點注釋#include

#include int main(void)getchar();

return 0;

}bool sqrtisintnum(int n[4])

29樓:匿名使用者

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

30樓:匿名使用者

sqrt(a)==(int)sqrt(a)

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語言表示怎樣判斷數是不是完全平方數

複製下列 include include void main c 簡介 c 是一種靜態型別 權的 編譯式的 通用的 大小寫敏感的 不規則的程式語言,支援過程化程式設計 物件導向程式設計和泛型程式設計。c 被認為是一種中級語言,它綜合了高階語言和低階語言的特點。c 是由 bjarne stroustr...

C語言輸入數判斷他是不是整數,如果是,判斷他是奇數還是偶

不知道樓主的編譯器是不是和我的一樣,不支援long double型別,我的改成這樣就可以了 include int main void else printf the number is odd n else printf the number is not an integer n return ...

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

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