ZKX's LAB

用scanf输入bool变量

2020-07-17知识9

C语言怎么输入bool型变量 scanf中没有对bool的定义,bool也不是标准c中的内容,要用bool就要包含stdbool.h头文件,bool的定义是将不为0的数置为1可以这样做bool i;int j;scanf(\"%d\",&j);i=(bool)j;j关于C语言中bool类型的问题。求解 我猜测你的疑问是:a的第一个打印为啥是1,b的打印为啥不是1而是扫描值5?我认为这是c编译器的特点吧,可以这么理解:首先定义的时候bool一个变量,如果直接赋值是非零,编译器就自动转转为1了(这里是预编译阶段)。所以一开始就是1而不是2。之后有a的2次打印。最后一句判断a是0就不打印的。然后说b,虽然定义了bool,但是扫描时候是按照int扫描的,内存中真的就是5了(并没有让编译器自动转换为1,因为是代码执行阶段了,不像预编译阶段那样自动转换)。额外的,如果你给b减1的话,第一次减1结果b就变成1了(可以理解bool值变动时,如果发现大于1了,就减至1)。以上都是习惯性的理解,没有什么特别的原理。就认为是编译器的动作吧,公理!C语言怎么输入bool型变量 scanf中没有对bool的定义,bool也不是标准c中的内容,要用bool就要包含stdbool.h头文件,bool的定义是将不为0的数置为1可以这样做bool i;int j;scanf(\"%d\",&j);i=(bool)j;j为0 i就为0,j不为0,i就为1i=(bool)j;关于bool型变量的问题 #include是标准输入输出函数库的头文件,printf、scanf 等用得到bool sign; printf(\ 输入一个整数,然后循环m-2次,给变量sign连续赋值 true为什么布尔类型变量不能直接用读语句输入 这同编译器有关。如果用#includebool 的 定义 是:typedef int BOOL;所以 BOOL 就是 整型。输出 数值 就是 整型。BOOL x=0;scanf(\"%d\",&x);愿意加一句 if(x!0)x=1;也无妨。如果你的编译器定义 是:typedef unsigned char bool;那你 输入输出 就按1字节整型 考虑就可以了。C语言中有bool吗? C语言里面是没有bool(布尔)类型e69da5e6ba90e799bee5baa631333366306439的,C++里面才有,C语言里面用数值0表示假,非0整数表示真。在C++里面可以使用bool类型。bool类型只有两个值:true=1、false=0。bool可用于定义函数类型为布尔型,函数里可以有 return TRUE;return FALSE 之类的语句。布尔型运算结果常用于条件语句:if(逻辑表达式){如果是 true 执行这里;}else{如果是 false 执行这里;};扩展资料Boolean(布尔)数据在C++中使用内置类型bool表示。bool类型的变量只可能有两个值true或false,在现实世界中它用于表示“是”或“否”、“高”或“低”等这种只有两个状态的事物。例如用于表示检测某年是否润年的函数,其返回值类型显示只有两种情况“是”或“否”。bool IsLeapYear(const unsigned int year){ return(year%4=0&year%100!0)|(year%400=0);}没有统一的布尔类型在大型的工程项中特别是用到第三方程序库时,可能使用不同的手段模拟布尔类型以提交代码的可读性,这样会使得代码有些混乱。C++引入了bool内置类型,解决了代码的一致性问题。参考资料来源:百度百科—boolbool型怎么用,BOOL是布尔型变量,也就是逻辑型变量的定义符,类似于float、doule等。ool为布尔型用作逻辑判断,ool取值fale和true,是0和1的区别;fale可以代表0,但true有关于_Bool变量 scanf函数是有返回值的,http://wenda.haosou.com/q/1366343245069200?src=150编写一个程序:判断输入的正整数m是否是素数? #includeint main(){int n,i,flag=1;scanf(\"%d\",&n);for(i=2;i;i+)if(n%i=0){flag=0;break;}if(flag)printf(\"%d is a prime\\n\",n);elseprintf(\"%d isn`t a prime\\n\",n);return 0;}示例运行结果:2929 is a prime2525 isn`t a prime

随机阅读

qrcode
访问手机版