① c++中 用bool类型作判断条件 怎么判断c的 c与a b有什么关系
在c语言中除了false和true外,还有其他的判断真假,c语言中默认0为假,非0为真,所以你输入C的值若C为0那么if(c)不成立,若C非0则if(c)为真成立,照你的代码看a,b,c无关系
② C语言判断布尔矩阵 我已有的思路是每行每列求和找出和是基数的行数和列数 如果两个相等则可以改
像这类问题啊,C语言行加和的话,还是弄个循环什么的,判断是否为偶数或者奇数。定义两个数组,记录一下那些行或者列是奇数。而且C语言在执行循环上速度很快,没有必要再提升一些执行速度。
当然两次两层循环来计算行和列的和的确有点浪费资源,所以代码优化就在这里进行
假设n为矩阵的行和列数:
定义col[n],row[n],初始为0。
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
row[i]=row[i]+a[i][j];
col[j]=col[j]+a[i][j];
}
}
这样就能计算行和列的情况(还算巧妙)。
然后一个循环对两个数组进行奇偶判断(实际上在上面的循环内部,已经能够判断row即每行的奇偶情况了)。可以通过另外的数组来保存奇数时行和列的坐标。最后进行判断就可以了。
这样算是比较符合思路又能很好体现要求的代码了。
但如果还需要优化的话,仍能省掉判断奇偶的额外循环。当然我并不清楚for循环和if哪个会更省时间,只是为了省代码的话,如下:
在上面的两层循环内部,col[j]=col[j]+a[i][j];执行后,当i等于n-1时,即每列的数据已经加到最后一行了,因此也可以判断是否为奇数。具体的更改如下:
定义两个数组rec_row[n],rec_col[n]进行坐标记录。
m,n为初始值为0,用于计数。
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
row[i]=row[i]+a[i][j];
col[j]=col[j]+a[i][j];
if(i==3)
{
if(col[j]%2==1)
rec_row[n++]=j,
}
}
if(row[i]%2==1)
rec_row[m++]=i,
}
这样通过m,n就可以判断是否可以转换。如果能转换,通过两个数组就可以确定下标,循环次数为m(m和n是相等的)
如果还觉得每次判断i是不是等于3,觉得太费时间,那么就把当i=3时的循环拉到外面,进行单独的加和判断,我想这的确会很省了时间,但代码却不容易让人看懂。
写了这么多,我也是收获很多啊,给采纳吧……
③ 布尔矩阵(用C语言编程)
#include<stdio.h>
#include<string.h>
intmain()
{
//freopen("in.txt","r",stdin);
intn,m[100][100],r[100],c[100],i,j,x,y,R,C;
while(scanf("%d",&n)!=EOF,n)
{
memset(r,0,sizeof(r));
memset(c,0,sizeof(c));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("%d",&m[i][j]);
r[i]+=m[i][j];
c[j]+=m[i][j];
}
for(R=C=i=0;i<n;i++)
{
if(r[i]%2)
{
R++;
x=i+1;
}
if(c[i]%2)
{
C++;
y=i+1;
}
}
if(!R&&!C)
puts("OK");
elseif(R==1&&C==1)
printf("Changebit(%d,%d) ",x,y);
else
puts("Corrupt");
}
return0;
}
听说回答的够长才能够自动采纳
④ C语言关于布尔型的问题
类型不匹配!没有对应的bool类型的格式控制符。
应该这么写if(isLeapYear(year)) printf("true");
else printf("false");
⑤ C语言BOOL值与零值判断的问题
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)
flag == TRUE 这个还要进行一次比较操作,
if ( flag )就直接进行了判断.
而且 有== 这个一般是和int型的作比较,
比如 if(i==3)
如果是bool型的话,容易混淆.
所以比较统一的写法是 :
if ( flag )
if ( !flag )
补充一下:
如果是指针型,就这样比较
if(p==NULL)
if(p!=NULL)
整型
if(i==3)
if(i!=3)
bool型
if(b)
if(!b)
就这个意思,
⑥ C语言里有没有布尔型这个数据类型
布尔型数据的值只有两个:false和true,前者序号为0,后者序号为1。布尔类型数据最少,但用途广泛,主要用于程序设计中的流程控制和逻辑判断。
布尔型数据可作如下运算操作:
not(逻辑非),and(逻辑与),or(逻辑与)。
⑦ C语言中BOOL命令的使用方法
bool是关键字,用来定义变量的类型的,不是命令。在C语言中:bool a = true;bool b = false;就是这样使用的。
⑧ 什么是布尔型
布尔型Boolean是编程语言pascal、VB、C++等的一种类型变量类型。
布尔型的值只有两个:false(假)和true(真)。且false的序号为0,true的序号是1(或者是非0)。
用于布尔型的标准函数有
ord(取序号),pred(前导),succ(后继)
注意:false没有前导,true没有后继。
用于布尔量的运算有布尔运算(或称逻辑运算),它们是:
AND(与),OR(或),NOT(非)
对布尔量还可以进行关系运算(或称比较运算)。关系运算有以下6种:
<(小于),<=(小于等于),=(等于)
>(大于),>=(大于等于),<>(不等于)
Pascal的名称是为了纪念十七世纪法国着名哲学家和数学家Blaise Pascal而来的,它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。
Pascal语言广泛用于各种软件,程序分为名称(program后自拟)、设置(var后规定)、开始(begin)、程序(正文)、读取(read/read ln)、结束(end),结构层次强,严谨而又紧密。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
⑨ C语言中 bool的用法
布尔型(bool)变量的值只有 真 (true) 和假 (false)。
布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。
bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。
布尔型运算结果常用于条件语句:if (逻辑表达式){如果是 true 执行这里;}else{如果是 false 执行这里;};
(9)c语言编程布尔类型判断奇偶扩展阅读
使用bool逻辑型变量的优点:
1、提高程序的可读性
bool类型的变量只可能有两个值true或false,在没有统一的布尔类型在大型的工程项中特别是用到第三方程序库时,可能使用不同的手段模拟布尔类型以提交代码的可读性,这样会使得代码有些混乱,C语言中引入了bool内置类型,解决了代码的一致性问题。
2、提高程序的性能
bool在绝大多数编译器编译时都将其实现为1字节,即sizeof(bool)的值为1,加上其只有两个值的值域{true, false},是C语言中最小的数据类型了。
虽然char、unsigned char和signed char类型在C语言中没有特定的实现要求,但一般也实现为一个字节,这样看来与bool类型从内存空间的占用上并没有性能上的差异。
⑩ C语言中的逻辑值“真”是用什么表示的,逻辑值“假”是用什么表示的
逻辑值只有两个值,即true(真)和false(假),在C语言中true用1表示,false用0表示。
需要注意的是,在C语言中并没有逻辑数据类型,在需要保存逻辑值时,可以用整型类型保存。例如:
int x=10,y=20;
int c = (x>y);//x>y此表达式为假,则整个表达式的值为0,即c变量的值为0;
printf(“c=%d ”,c);//结果:c=0
(10)c语言编程布尔类型判断奇偶扩展阅读:
运算注意事项
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为 真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。
逻辑非(!)运算是把相应的变量 数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。