c語言如何判斷一個數是整數
C語言判斷是否為整數,那麼只可能是判斷輸入的值,或者字元串中的值,是否為整數。
因為一旦存儲在變數中,根據變數類型,要麼為整數,要麼為浮點數,是確定的。
一、判斷思路:
1、整數中,按十進制計算,合法字元為0到9,另外在最初位置可以有符號,即+或者-。
2、對於輸入的值,可以先存儲到字元串中,這樣轉換為判斷字元串中是否為整數。
3、先判斷第一個字元是否為+或者-, 如果是,則從第二個開始判斷,否則從第一個開始判斷。
4、對每一個需要判斷的字元,判斷是否在'0'到'9'之間,如果是則合法,否則非法。
5、一旦出現非法字元,說明不是整數。如果所有字元合法,那麼是整數。
二、參考代碼:
intis_int(char*s)//判斷s中是否為整數,如果是返回1,否則返回0.
{
char*p=s;//p指向s。
if(*p=='+'||*p=='-')//如果第一個字元為符號,則從第二個開始遍歷。
p++;
while(*p)//遍歷字元串。
{
if(*p<'0'||*p>'9')return0;//出現非法字元,返回0,表示不是整數。
p++;//判斷下一個字元。
}
return1;//所有都是合法字元,返回1,表示為整數
}
intmain()
{
chars[200];
gets(s);//讀取輸入,存到s中。
if(is_int(s))//判斷並輸出結果
printf("%s是整數 ",s);
else
printf("%s不是整數 ",s);
return0;
}
B. c語言怎麼判斷一個數是不是整數
方法1:
#include<stdio.h>
#include<math.h>
float x;
...
if(fabs(x-(int)x)<1e-8)printf(「x是一個整數 」);
else printf(「x不是一個整數 」);
方法2:
int c=(int)b,d=(int)(b+0.999999)
if(c==d)
printf(「是整數 」);
else
printf(「不是整數 」);
方法3:
float b;
...
if(b-(int)b==0)
printf(「是整數 」);
else
printf(「不是整數 」);
方法4:
float b;
...
if(b!=(int)b)
printf(「不是整數 」);
else
printf(「是整數 」);
C. 在c語言中要怎麼來判斷整數和小數啊比如說當在輸入浮點型數據的時候我要提醒它出錯要怎麼做
#include
#include
#include
//char*strchr(constchar*str,intch);
intmain(intargc,char*argv[])
{
inta=0;
doubleb=0;
charstr[10]="";
scanf("%s",str);//先存成字元串
if(NULL==strchr(str,'.'))//等於NULL是沒有找到小數點
{
sscanf(str,"%d",&a);//再從字元串格式化成整型
printf("輸入的是整型:%d ",a);
}
else
{
sscanf(str,"%lf",&b);//再從字元串格式化成浮點型
printf("輸入的是浮點型:%lf ",b);
}
system("PAUSE");
return0;
}
(3)c語言如何判斷一個數是整數擴展閱讀
C語言判斷數字為幾位數
#include <stdio.h>
int main()
{
long long n;
int count = 0;
printf("輸入一個整數: ");
scanf("%lld", &n);
while(n != 0)
{
// n = n/10
n /= 10;
++count;
}
printf("數字是 %d 位數。", count);
}