比如 我定义了一个整型变量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;
你可以用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);
}
类型说明符 变量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以后判断一下是否符合你的要求,如果不符合,叫用户重新输入