在C语言里边,如何限定一个变量的赋值范围

比如 我定义了一个整型变量a,我想用scanf("%d",&a)函数输入一个数给a,当我输入一个浮点数的时候,怎么样才能使a不接受这个浮点数。如果可能的话,能不能给a限定一个取数范围,比如我只想让a取0 或者 1

用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;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-29

上一节我们学习了C语言中的单目运算符,这一节我们学习C语言中赋值操作需要注意的点。

第2个回答  2015-06-09

    输入数据时,不能即时判断变量的范围。只能够输入之后,判断是否超出范围。

    对于超大的数据,建议使用字符串读入。然后再判断其范围是否超出。

    例如:

    char s[100];

    gets(s);

    if(11<strlen(s)) printf("超过范围!");


第3个回答  2008-08-15
在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。本小节先介绍在作变量定义的同时给变量赋以初值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为:

类型说明符 变量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);

}
第4个回答  2008-08-12
这个 ···,我不会,不过你可以读入a以后判断一下是否符合你的要求,如果不符合,叫用户重新输入