C怎么判断的东西

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:09:22
我想让输入一个四位数,如果输入的不是四位数,或者输入了字符,都要重新输入,怎么写?
如果输入了asdf那么根本就不是%d类型的,input<1000 || input>9999就不行啦

给:

#include<stdio.h>
#include<conio.h>

void main()
{
int i,j,num=0,flag=1;
char c;

printf("please input: \n");
for(i=0;i<4;i++)
{
c=getch();
printf("%c",c);
if((c>='0')&&(c<='9'))
{
num*=10;
num+=(c-'0');
}
else
{
printf("\nError Input!!\n");
flag=0;
break;
}
}

if(flag) printf("\n%d",num);

getch();
}

可以的,你编译一下试试,因为遇到字母就舍弃了,我试了一下,比如输入11bb,得到的是11,当然不在那个范围内,就舍掉了
不过如果输入1111aaa这样的就不好说了,得到的是1111,要全部都输入只能用gets()函数输入字符串了
这样可以判断,但是对以后的计算会复杂的

#include<stdio.h>
void main()
{
int n;
scanf("%d",&n);
if(n>=1000&&n<=9999)
printf("n=%d",n);
else printf("请重新输入");