用scanf可能实现不了你的要求。
你可以用fgets或者fread将输入读近来,然后解析成数字,判断其范围,满足条件的话,赋值给a。
int a;
char str[10];
fgets(str, 10, stdout);
int b = -1;
b = atoi(str);
if(b == 0 || b == 1)
a = b;
上一节我们学习了C语言中的单目运算符,这一节我们学习C语言中赋值操作需要注意的点。
输入数据时,不能即时判断变量的范围。只能够输入之后,判断是否超出范围。
对于超大的数据,建议使用字符串读入。然后再判断其范围是否超出。
例如:
char s[100];
gets(s);
if(11
在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。本小节先介绍在作变量定义的同时给变量赋以初值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为:
类型说明符 变量1= 值1,变量2= 值2,……;
例如:
int a=3;
int b,c=5;
float x=3.2,y=3f,z=0.75;
char ch1='K',ch2='P';
应注意,在定义中不允许连续赋值,如a=b=c=5是不合法的。
【例3.11】
main()
{
int a=3,b,c=5;
b=a+c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
这个 ···,我不会,不过你可以读入a以后判断一下是否符合你的要求,如果不符合,叫用户重新输入