1樓:匿名使用者
#include
//a可以是float、double、long double型if (floor(a) == a)
else
2樓:匿名使用者
將其轉化為 int 型別,如果(int)i == i ,那麼它就是小數部分全部為零的浮點數。
3樓:汐日南莘
假如a是浮點數,再定義一個整型變數int b=a;再定義一個float c=a/b,假如c=1則浮點數a是整數
4樓:匿名使用者
無論是通過sizeof檢視位元組數(int和float佔用位元組數相同),還是做float轉換為int然後相除判斷是否等於1(int轉為float可能尾數丟失),或者是sprintf轉化為字串去檢查是否有小數點(int會轉換為float,導致有小數點出現),都有問題。
以字元讀入數,挨個字元判斷,檢查到有小數點且所有字元在字元『0』到『9』之間,且小數點後不超過6位可以判為float,超過為double,沒有小數點為int;只長度為1且字元為『a』到『z』或『a'到'z'為char,長度超過1為字串。
5樓:金色潛鳥
用%g 格式把 float, double 轉字串,檢查字串裡有沒有小數點,有就不是,無就是整數。
例如:double y=23.000;
int i,l,flag;
sprintf(str,"%g",y);
l = strlen(str);
flag = 0;
for (i=0;i#include 用 裡面的flt_epsilon,dbl_epsilon 極小誤差判斷if ( fabs(x - (int) x) <= flt_epsilon) printf("yes int !\n");
如果 數值太大, (int) x 超出範圍,這個方法就不行了。
6樓:匿名使用者
c語言裡數字輸入輸出的時候都有確定它的型別的啊,不用判斷的.
如果你指的是那種直接給你的一個數的話,那是不確定的,比如2.0可以確定它是浮點數,但是2就不確定了,,可能是浮點數,也可能是整形的,看你定義的時候是怎麼定義的了
7樓:
c語言裡浮點數和整數的操作和表示都不相同,這種說法很不嚴格,所以如何判斷,就看你自己的定義啦。
我的理解是,如果一個浮點數可以分為整數部分和小數部分,那麼你想判斷一個浮點數是不是跟它的整數部分基本相同,嚴格一點說就是誤差很小。這樣的話,你可以這麼寫:
double err = 1e-10; //先自己定義誤差x = 2.9999999997;
if (abs(int(x)-x)< err) // 和它整數部分誤差的絕對值是否小於規定的誤差...
8樓:匿名使用者
如果a=int(a)為真,就是了。
如何判斷c語言的一個浮點數是不是整數?
9樓:金色潛鳥
用%g 格式把 float, double 轉字串,檢查字串裡有沒有小數點,有就不是,無就是整數。
例如:double y=23.000;
int i,l,flag;
sprintf(str,"%g",y);
l = strlen(str);
flag = 0;
for (i=0;i#include 用 裡面的flt_epsilon,dbl_epsilon 極小誤差判斷if ( fabs(x - (int) x) <= flt_epsilon) printf("yes int !\n");
如果 數值太大, (int) x 超出範圍,這個方法就不行了。
c語言中怎樣判斷輸入的是整數還是浮點數
10樓:匿名使用者
scanf(%s,str);//先存成字串if(null==strchr(str,'.'))//等於null是沒有找到小數點else{sscanf(str,%lf,&b);//再從字串格式化成浮點型例如:inti;floatf;doubled;輸入i是整數,輸入f是float型,輸入d是double型(2)看輸入格式scanf(%d%f%lf,..
);%d輸入整數;%f輸入float型;%lf輸入double型------------------至於鍵盤上拍入的數,scanf(%d,&i);如果你拍入123或-123,沒問題,拍入的是整數,讀進去,也是整數。如果你拍入123.4或-123.
4,只會讀進去123或-123,而.4殘餘在緩衝區。scanf(%f,&f);如果你拍入123.
4或-123.4,讀進去是浮點數123.4或-123.
4如果你拍入123或-123,讀進去自動變浮點數。-------------------c語言的數的例子:123,-123,--整數,輸入格式%d064,040--八進位制整數,輸入格式%o
11樓:
先存成字串,判斷有沒有小數點,再從字串格式化成整型或浮點型。
#include
#include
#include
//char *strchr( const char *str, int ch );
int main(int argc, char *argv)else
system("pause");
return 0;}
c語言中怎麼判斷輸入的數是整數還是浮點數?
12樓:匿名使用者
判斷是否有小數唄,但是不科學,也許有更好方法#include
void main (void)
else}
13樓:匿名使用者
c語言中沒有判斷輸入是整數還是浮點數的既有功能,需要自己實現.
實現方法是把輸入作為字串讀入,然後自行分析該字串表示的是整數還是浮點數.
14樓:匿名使用者
可以用sizeof()來判斷,他們的位元組數是不相等的!int是4,float是8!希望對你有幫助!
各位是如何判斷一個浮點數小於,小於等於零的
15樓:匿名使用者
對於e^t,t為任意實數,始終大於0,而此時-2x小於等於0 所以此時小於等於0
c語言怎麼判斷一個數是不是整數
16樓:凌亂心扉
方法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」);
17樓:聽不清啊
如果用實型變數x接收一個數或通過計算得到一個數後要知道它是不是整數,沒有很好的辦法。因為實數在計算機中不能準確地儲存,所以不能直接判斷兩個實型量(x,與表示整數的實型量,必須要同型別的量才能比較)是否相等,首先要明確能允許的誤差是多少。比如,一般情況當誤差的絕對值小於10的負8次方時我們可以認為兩個實數是相等的。
所以,要使用math庫。
#include
float x;
......
if(fabs(x-(int)x)<1e-8)printf("x是一個整數\n");
else printf("x不是一個整數\n");
18樓:王錚教授
其實嚴格意義上來說,你們都想複雜了。
我們應該從問題角度出發,根本不用函式。
接下來我用c++來說明,其實c也同理
#include萬能頭挺好的
int main()
19樓:匿名使用者
if(number%2==0||number%2==1)是整數; //number對2取模,餘數為0或1就是整數。
else 不是;
實際上,還可以在定義上取巧,比如說,把輸入數n設為float ,另有一個 int m;
輸入n後,
m=n;//強制把n取整賦給m
if(n==m)就是整數了。
20樓:真忙得很
#include
int main(void)
這裡while(scanf("%d",&a)==1)代表如果輸入的是一個整數就返回1並執行printf("輸入的是一個整數「);如果不是就返回0,退出迴圈,並執行printf("輸入的不是一個整數「);
c語言判斷有幾個零,c語言如何判斷一個數字有幾個
include include int main if sum printf 你輸入的字串中共包含 d個0。n sum else printf 你輸入的字串中不包含0。n system pause return 0 c語言如何判斷一個數字有幾個1 如果是浮點型 也可以是整型 double a 123...
c語言中如何判斷輸入的是字元還是數字
可以使用 進行判斷 include intmain return0 擴充套件資料c語言判斷輸入是否是數字 intdigit printf pleaseinputainteger n intret scanf d digit if 0 ret 1 可以用sa f或gets函式直接接收輸入的字串,然後用...
c語言如何獲取上下左右箭頭並判斷
上下左右箭頭 產生的鍵值是雙鍵值,具體數值與你的鍵盤 設定 有關。有可能 是 十進位制內 224 72 上 224 80 下 224 75 左 224 77 右 程式設計序,用容 int key getch 讀 一個鍵值,如果 它等於 224,則 再 讀 一個鍵值 key2 getch 如果 key...