當前位置:首頁 » 編程語言 » c語言判斷輸入的是否為數字

c語言判斷輸入的是否為數字

發布時間: 2022-05-09 18:43:51

c語言中如何實現驗證輸入的是否為數字

LZ要在C中實現這個功能比較麻煩,需要首先要用字元型輸入來判斷,之後把字元型轉化為整型,我寫了一段代碼,給LZ參考:
----------------------------------------------------------
#include
#define
MAX
100
//最大輸入長度為100
int
CharToInt(char
*a,int
l);
//把字元型轉化為int型
int
Ten(int
k);
//10的k次冪
int
main()
{
char
a[MAX];
int
b;
//最終輸入的整數存放在b中
int
i,l,flag;
while(1)
//輸入
{
for(i=0;i
4)
//長度超過4位,非法輸入
{
printf("輸入非法,請重新輸入\n");
continue;
}
flag=0;
for(i=0;i
'9')
{
flag=1;
break;
}
}
if(flag==1)
//其中有一個不在,則輸入非法
{
printf("輸入非法,請重新輸入\n");
continue;
}
break;
}
b=CharToInt(a,l);
//把字元型轉化為int型
//繼續執行下面程序
return
0;
}
int
CharToInt(char
*a,int
l)
{
int
i=0;
int
b=0;
for(i=l-1;i>=0;i--)
{
b+=(a[i]-'0')*Ten(i);
}
return
b;
}
int
Ten(int
k)
{
int
i=0;
int
b=1;
for(i=0;i
評論
0
0
載入更多

㈡ c語言中如何判斷輸入的是否數字

這個程序不難寫,我告訴你思路和演算法,你根據這個編寫代碼就可以了。
1.由於你輸入的這一串數據可能都為數字,也可能包含其它字元,所以首先用一字元數組存放這個字元串。
2.用strlen函數計算這個字元串的長度,在此基礎上藉助for循環或while循環實現數組元素的遍歷。
3.遍歷每一個元素的同時用if語句判斷這個元素的ascii碼所在的范圍是否在48~57之間,如果不在則中止循環,輸出判斷結果(即不是數字)。
4.如果最後一個元素仍然是數字,則整個字元串則為一個大數。

㈢ C語言,如何判斷一個數是數字啊

用scanf()從鍵盤輸入讀入一個字元串(注意別越界),之後編個循環檢測每個字元,若存在不是字元'.',且>'0',<'9'的字元,那就不是數字,字元'.'若出現一次以上也不是數字。

㈣ C語言:如何判斷輸入的是數字還是其他字元

有很多方法:
1、可以用sacnf或gets函數直接接收輸入的字元串,然後用循環遍歷字元串中每一個字元,判斷其是字母還是數字。
2、可以用循環調用getch()或getchar()函數來一個一個字元的接收輸入,同時判讀輸入的是字母還是數字。
至於怎麼判讀是字母還是數字,很簡單,假設字元c,
滿足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母。
滿足 (c>='0' && c<='9')就是數字。

㈤ c語言判斷輸入是否為數字

你寫的這個有太多的錯誤。至於定義數組的時候a[N]這種錯誤我就不講了
還有在循環裡面(i=1;i<N;i++)
N沒賦值就調用的錯誤我也不講了
講你的死循環問題
你沒有給循環加一個限制條件
根據你continue的意思我暫時理解為
如果輸入的不是數字
那麼一直循環
重新輸入
一直到你輸入的是數字為止跳出循環
對嗎?
while(1){
printf("請輸入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0){
printf("輸入錯誤,請重新輸入\n");
continue;
}
break;
}
這樣就可以
如果輸入的是數字
scanf的返回值為1
那麼循環的第一次
不會進入if(ret==0)
也就是說
如果輸入的是數字
直接執行break跳出循環
如果輸入的不是數字
循環的時候執行語句if(ret==0)
然後執行continue
continue的意思是跳出當前循環繼續下一次循環
即執行到continue之後從新循環而不會執行到break
以此類推
只要你輸入的不是數字
則永遠循環
輸入的如果是數字
跳出循環
執行完畢。
大哥
如果小弟回答正常
給點分吧
多謝
=================================================================
另外對於一樓的同學
我必須有好的提醒你scanf()的用法以及返回值的相關問題
我想你肯定不知道
scanf("%d",&i)
如果你輸入的是int型則返回1
否則返回0
換句話說即你輸入的類型和scanf()裡面預先定義的類型一致
則返回1
否則返回0
THANK
YOU

㈥ c語言 怎麼判斷輸入的是不是數字

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始的.cpp文件,例如:test.cpp。

㈦ c語言判斷輸入的是否是數字(不止一位)

#include<stdio.h>

intmain()

{

charc;

c=getchar();

//來判斷是否為數字,如果是數字那麼會返回非0

if(is digit(c)!=0)

printf("是數字 ");

//來判斷是否為字母,如果是字母那麼返回非0

elseif (is alpha(c)!=0)

printf("是字母 ");

else

printf("是特殊字元 ");

}

(7)c語言判斷輸入的是否為數字擴展閱讀

輸入一個字元判斷其是字母字元還是數字字元

#include<stdio.h>

int main()

{

char ch;

printf("Input ch:");

ch=getchar();

if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))//判斷是不是字母

printf("字母 ");

else if(ch>='0'&&ch<='9')//判斷是不是數字

printf("數字 ");

else

printf("其他 ");

return 0;

}

㈧ C語言,怎麼判定,是不是數字

由於數字的ascii碼值是連續的,所以可以通過與最小的數字'0'以及最大的數字'9'相比較,確定一個字元變數是否為數字。
比如

if(c>='0' && c<='9') printf("%c 是數字\n",c);
else printf("%c 不是數字\n",c);

如果判斷要經常使用,可以將該功能封裝為函數:
int is_num(char c)
{
return (c>='0' && c<='9');
}
或者宏定義:

#define is_num(c) (c>='0' && c<='9')

熱點內容
校園網可以搭建伺服器地址 發布:2025-05-11 04:54:40 瀏覽:784
noip演算法 發布:2025-05-11 04:53:51 瀏覽:50
有什麼我的世界伺服器啟動器 發布:2025-05-11 04:50:41 瀏覽:295
寫shell腳本 發布:2025-05-11 04:37:41 瀏覽:935
電腦伺服器打開有什麼用 發布:2025-05-11 04:36:49 瀏覽:98
sqlserver2008查詢時間 發布:2025-05-11 04:15:28 瀏覽:386
安卓孤膽車神被封號怎麼解封 發布:2025-05-11 04:05:22 瀏覽:940
高壓洗車泡沫怎麼配置 發布:2025-05-11 04:00:47 瀏覽:547
騰訊輕量伺服器怎麼使用 發布:2025-05-11 03:52:46 瀏覽:174
4位密碼組合有多少種至少有一個0 發布:2025-05-11 03:44:03 瀏覽:338