C语言编程 不明白如何使用逻辑型变量

如题所述

逻辑型变量一般用来指引程序分支。它只有“是”(1)与“否”(0)两种状态。它的初始化可以是直接赋值的。也可以是一个条件判别式赋值的。比如bool flag;flag=3>2;此时flag的状态就是“是”。在早期C语言里没有bool型变量这一说法,逻辑型变量直接用0(否)或者正数(是)代替。但是在比较严格的Java语言中,逻辑变量的两个值被严格定义为true和false,直接赋值必须用它们。条件判别式依然通用。
如果一种语言不支持bool型变量,程序员可以自己定义结构或者对象代替。追问

现在还不会定义。能不能讲下?

追答

说白了就是一对互斥量。逻辑型变量只有两个值,0或者1,一般用来指引程序分支。也就是“不对”和“对”产生不同的程序运行方向。比如说我要给100分制的成绩进行ABCD的分级。那就要对成绩进行判断,grade>90是A,grade>80是B依次类推。伪代码如下:
if(grade>90)输出("成绩为A");
else if(grade>80)输出("成绩为B");
......
上面的伪代码里,grade>90和grade>80是条件判别式,条件判别式的值就是一个逻辑变量。假如当前grade=95。那么grade>90就是“对”的,也就是grade>90=true(在Java中)或者在C语言中grade>90=1。如果我给出一个逻辑变量的声明bool argv;那么我给它赋值有两种方式:
argv=3>2;这种方式的真实情况是:if(3>2)argv=1;(或argv=true;)
argv=1;(或者argv=true)

也就是说,逻辑变量就是一个条件判别式的结果。而条件判别式只能有两种结果,对或者不对。这就像一个开关只能有开或者关两种状态一样。你把逻辑型变量当成一个两状态开关就行了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-24

给你举两个例子吧

    作为函数返回值,表示函数执行结果

    bool isInt(){

         bool result=false;

         //中间各种判断

         return result

    作为条件使用

    bool flag = true;

    //中间各种判断

    if(flag){

         .....

    }

追问

书后面有解释吗?

式子看不懂

追答

书里肯定有介绍的,应该是先讲的数据类型,然后运算符,之后。。。。

追问

你就讲下为什么用bool吧

它为什么不用输入?又没有给它们赋值

追答

bool是说这个变量的类型是bool型的,也就是逻辑型变量
你给的图中对变量赋值了
a=score>=60; //意思是说a=(score>=60),即a等于逻辑表达式score>=60的值,如果score大于等于60,a=true,否则a=false

追问

那为什么不用浮点型或整型

追答

逻辑变量就是两个值,true和false,逻辑表达式score>=60的结果就是逻辑值,逻辑判断自然要用逻辑变量

浮点型或整型类型都不对应

追问

明白了。

源码长这个样子?

追答

肯定不是啊,源码就是书里写的那样a=score>=60

追问

对啊

那怎么弄啊

追答

什么怎么弄啊,我都不知道你现在又是什么问题

追问

饿,最后一问

追答

什么问题啊,你截的图看不清,请只截代码,旁边没用就别截了吧,也可以帖代码啊

追问

#include
#include

int main()
{
long double a,b,c,d;
scanf ("%lf%lf%lf%lf",a,b,c,d);
long double s;
s=sqrt(((int)(b>a))&((c++)*(d--)));//表达式必须具有整数或未区分范围的枚举类型
printf("%lf\n",s);
return 0;
}

追答#include<math.h>
#include<stdio.h>
int main()
{
long double a,b,c,d;
scanf ("%lf%lf%lf%lf",&a,&b,&c,&d);//修改
long double s;
s=sqrt((double)(((int)(b>a))&(int)((c++)*(d--))));//&是按位与运算,两边要都是整数
printf("%lf\n",s);
return 0;
}

本回答被网友采纳
相似回答