c語言輸入數字限制
㈠ c語言中如何限制輸入的數據的大小
可以參考下面的代碼:
int i = 0;
while ( i < 10)
{
scanf("%d",&m);
if ( m != 0 || m!= 1) continue;
else{
array[i] = m;
i++;
}
}
C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
(1)c語言輸入數字限制擴展閱讀:
C語言參考函數
C語言isprint()函數:判斷一個字元是否是可列印字元
C語言islower()函數:判斷一個字元是否是小寫字母
C語言ldexp()函數:返回x乘以2的exponent次方(次冪)的值
C語言labs()函數:求整數的絕對值(針對long類型)
C語言isgraph()函數:判斷一個字元是否是圖形字元
C語言isdigit()函數:判斷一個字元是否為數字
㈡ C語言中可以限制輸入類型嗎例如只可以輸入數字,輸入其他會報錯!!
判斷是否為數值,是就通過,不是則報錯。
用個if判斷就OK了,應該有個函數能比較是否為數值的。
另外就從ASCII來判斷,大於小於,就能把限定在數字范圍內了。
㈢ 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語言中如何限制使用者只能輸入數字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");
}
㈤ c語言:如何限制數字在某個范圍
用for循環語句
int
n;float
sum=0;
for(n=1;n<=1000;n++)
sum+=sum;
n++;
這是第一行求和。
第二行類似,用空格隔開時在輸出語句上加上格式控制符空格就可以了,這道題是
printf("
%f";sum);
注意百分號前面的空格。
如果比較滿意的話請採納吧。-_-
㈥ C語言怎樣實現只允許輸入數字,不允許輸入符號、字母等
假設變數時num,則when(scanf("%d",&num)==1
&&
num>9)
scanf("%d",&num)==1意思是輸入一個數,scnaf才返回數字1,其他字元則是錯的,
&&
在兩者都成立時才成立,num>9解決了輸入時兩位或兩位以上的的數字,當符合這些條件時,才允許往下進行。
㈦ c語言 怎麼將輸入的數字限制在六位啊
按照你的要求,修改了一下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
structcustomer
{
charname[50];
charaddress[100];
charphone[20];
charPIN[10];
};
voidnew_customer()
{
structcustomera;
structcustomer*p=&a;
FILE*fp1;
charfilename[20]={0};
inti;
memset(&a,0,sizeof(structcustomer));
printf("pleaseenterfilename ");
gets(filename);
if((fp1=fopen(filename,"w"))==NULL)
{
printf("cannotopenfile ");
exit(0);
}
printf("pleaseinputyourname: ");
gets(p->address);
printf("pleaseinputyouraddress: ");
gets(p->address);
printf(": ");
gets(p->phone);
printf("pleaseinputyourPIN: ");
scanf("%6s",p->PIN);
for(i=0;i<6;i++)
{
if(p->PIN[i]<'0'||p->PIN[i]>9)
{
printf("YourPINisincorrect. ");
fclose(fp1);
return;
}
}
fwrite(p->address,1,strlen(p->address),fp1);
fwrite("",1,1,fp1);
fwrite(p->phone,1,strlen(p->phone),fp1);
fwrite("",1,1,fp1);
fwrite(p->PIN,1,strlen(p->PIN),fp1);
fclose(fp1);
}
intmain(void)
{
new_customer();
return0;
}
測試截圖:
提示字元太多,就不寫注釋了。
㈧ 如何用C語言實現,限制輸入數字個數,比如此處必須輸入19個數字,多了和少了都必須重新輸入。
用字元串輸入
用strlen取長度,長度不對就重新輸入
這個用死循環,符合條件break跳出死循環
while(1)
{
puts("input:");
gets(a);
if(strlen(a)==19)
break;
}
㈨ 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語言 如何限定輸入密碼長度 如何限定用戶選擇操作只能輸入數字
scanf("%[0-9]",s);//只能輸入數字字元到字元串數組s,忽視其他字元