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");
}