c語言限制輸入的是數字
⑴ c語言怎樣實現只允許輸入數字,不允許輸入符號、字母等
假設變數時num,則when(scanf("%d",&num)==1
&&
num>9)
scanf("%d",&num)==1意思是輸入一個數,scnaf才返回數字1,其他字元則是錯的,
&&
在兩者都成立時才成立,num>9解決了輸入時兩位或兩位以上的的數字,當符合這些條件時,才允許往下進行。
⑵ 在C語言里怎麼控制輸入的只是數字而不是其他的啊
char number;
number = getchar();
while( number < '0' || number > '9' ) {
printf( "你輸入的不是 0 至 9 的數字,請重新輸入" );
number = getchar();
}
⑶ c語言 如何做到只能輸入數字,輸入其他的,比如字母。就會提示重新輸入。
將你的test1函數更改如下:
inttest1()
{
chars[20];
intnum=0,n,len,i;
while(1){
printf("請輸入一個整數:");
gets(s);
len=strlen(s);
//for(n=0;s[n]=='0';++n);
num=0; //每次輸入前,要確保num=0
for(i=len-1;i>=0;--i)
{
if((s[i]<'0')||(s[i]>'9'))
{
printf("輸入錯誤,重新輸入。 ");
break;//
}
num=10*num+s[i]-'0';//
}
if(i<0)
break;
}
//for(n=0;s[n]=='0';++n);
input=num;
return0;
}
⑷ C語言,要求只能輸入數字,輸入其它的會提示錯誤,重新輸入
不知道你指的是輸入一個數字或字元還是一串
下面是輸入一個數字或字元的
#include
int
main()
{
char
c,c1;
while(1)
{
c=getchar();
c1=getchar();
//你打一個非數字時要按回車,回車本身也是一個字元,
用c1接收回車,以免打一個字元輸出兩個error
if(c>='0'&&c<='9')
break;
printf("error!\n");
}
}
⑸ c語言:如何限制數字在某個范圍
用for循環語句
int
n;float
sum=0;
for(n=1;n<=1000;n++)
sum+=sum;
n++;
這是第一行求和。
第二行類似,用空格隔開時在輸出語句上加上格式控制符空格就可以了,這道題是
printf("
%f";sum);
注意百分號前面的空格。
如果比較滿意的話請採納吧。-_-
⑹ C語言中可以限制輸入類型嗎例如只可以輸入數字,輸入其他會報錯!!
判斷是否為數值,是就通過,不是則報錯。
用個if判斷就OK了,應該有個函數能比較是否為數值的。
另外就從ASCII來判斷,大於小於,就能把限定在數字范圍內了。
⑺ C語言中怎麼讓輸入的數只能為數字,不能為字母,如果是字母就重新輸入!
#include <cstdio>
#include <cstdlib>
void main()
{
char* ch=(char*)malloc(100*sizeof(char));
scanf("%s",ch);
int num;
num=atoi(ch);
if(0==num)
{
if('0'==*ch)
printf("%d\n",num);
else
printf("您輸入了非數字");
}
else
{
printf("%d\n",num);
}
}
已進過測試
有幾點需注意
1輸入數值不能超過100位數值,當然可將程序中的100改為更大值
2若要輸入浮點值,可將atoi 改為atof 函數
⑻ C語言怎樣保證輸入的只是數字不能輸入字母
可以使用這個語句,while( scanf("%d",&x)),如果輸入是數字,則保存輸入,執行下一條語句,如果不是數字,則舍棄此時輸入,請求繼續輸入,直到輸入的是數字為止
⑼ C語言中怎樣限制輸入值為字元串或數字
1.凡是數字皆為字元。任何數字首先是字元,然後才能是數字。所以這個問題應該是如何在字元中識別數字。直接將每個字元挨個提取出來,將他賦給一個整型,得到它的ASCII碼值。然後根據ASCII碼的范圍來判斷它到底是數字字元還是非數字字元。由下表可以得知,數字范圍在48~57的都是數字字元。
2.用isdigit()函數判斷字元串是否為數字。
isdigit()函數包含在ctype.h頭文件中,
原型: int isdigit(char c);
用法:#include <ctype.h>
功能:判斷字元c是否為數字
說明:當c為數字0-9時,返回非零值,否則返回零。
3.下面使用isdigit()實現一個判斷字元串是否為數字的代碼。這個函數是判斷某一個字元是否為數字,可以用一個字元數組接受輸入的字元,然後循環判斷每一個字元是否為數字,如果其中一個不是數字,那麼返回0,否則返回非0;包含了判斷小數點的個數和負數符號-。
#include<stdio.h>
#include<ctype.h>
void main()
{
char a[10];
int i,j,flag=0; /*flag標記小數點個數,如果超過一個,那麼就不是數字*/
printf("input a number:
");
scanf("%s",a);
for(i=0;a[i]!=0;i++)
{
if(i==0&&(a[i]=='+'||a[i]=='-'))
{
i++;
continue;
} /*如果第一個字元為+或-,不判斷為非數字,可能是符號標志,繼續向下判斷*/
if(a[i]=='.')
{
flag++;
if(flag>1) /*如果小數點個數超過一個,則表示不是數字*/
{
break;
}
else if(flag==1) /*如果小數點個數為1個,則可能為小數,繼續判斷*/
{
continue;
}
}
j=isdigit(a[i]);
if(j==0)
{
break;
}
}
if(j!=0)
printf("%s yes",a);
else
printf("%s no",a);
getch();
}
⑽ C語言中如何限制使用者只能輸入數字1~9求大神幫助
#include<stdio.h>
main()
{
int f;char s[2];//用一個字元數組穩當
do
{
printf("請輸入1~9:");
scanf("%s",s);
if(s[0]<'1' || s[0]>'9')
f=0;
else f=1;
}while(!f);
printf("輸入正確!\n\n");
}